写的有点长
2024-12-11 21:58:55
发布于:云南
19阅读
0回复
0点赞
思路挺简单,用结构体+cmp+double计算就行
#include<bits/stdc++.h>
using namespace std;
struct node{
int k;
int s;
}a[5005];
bool cmp(node a,node b){
if(a.s != b.s) return a.s > b.s;
else return a.k < b.k;
}
int main(){
int n,m; cin >> n >> m;
double ru = floor(m * 1.5);
for(int i = 1;i <= n;i++) cin >> a[i].k >> a[i].s;
sort(a + 1,a + n + 1,cmp);
for(int i = ru + 1;i <= n;i++){
if(a[i].s == a[i - 1].s) ru++;
else break;
}
cout << a[(int)ru].s << " " << ru << endl;
for(int i = 1;i <= ru;i++) cout << a[i].k << " " << a[i].s << endl;
return 0;
}
这里空空如也
有帮助,赞一个