[//]: # (推荐题解模板,请替换blablabla等内容 ^^)
题目描述
no
样例
no
算法1
(排序+模拟) $O(n^2)$
这个题直接用[HTML_REMOVED]里的sort即可,自定义排序规则,成绩相同比较编号
但注意数组要开大,不要动态分配
并且第m*1.5名选手的下标要-1
时间复杂度分析:no
C++ 代码
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
struct people{
int num,score;
};
bool cmp(people a,people b){
if(a.score==b.score){
return a.num<b.num;
}else{
return a.score>b.score;
}
}
int main(){
int n,m;
cin>>n>>m;
people a[7000];
for(int i=0;i<n;i++){
cin>>a[i].num>>a[i].score;
}
sort(a,a+n,cmp);
int ren=floor(m*1.5);
int fen=a[ren-1].score;
int t=0;
for(int i=0;i<n;i++){
if(a[i].score>=fen){
t++;
}
}
cout<<fen<<" "<<t<<endl;
for(int i=0;i<n;i++){
if(a[i].score>=fen){
cout<<a[i].num<<" "<<a[i].score<<endl;
}
}
return 0;
}
算法2
(暴力枚举) $O(n^2)$
no
时间复杂度分析:no
C++ 代码
no