洛谷——排序P1068分数线划定

 

 

 解法1:

#include<bits/stdc++.h>
using namespace std;
int n,m,i,f,k[5001],s[5001],sub[5001];
bool cmp(int a,int b){
    if(s[a] == s[b]){
        return k[a]<k[b];
    }
    return s[a] > s[b];
}
int main(){
    cin>>n>>m;
    for(int i = 1;i<=n;++i){
        cin>>k[sub[i]=i]>>s[i];
    }
    sort(sub+1,sub+n+1,cmp);
    f = s[sub[int(m*1.5)]];//分数线
    for(i=1;s[sub[i]]>=f;++i);
    cout<<f<<" "<<i-1<<endl;
    for(i=1;s[sub[i]]>=f;++i){
        cout<<k[sub[i]]<<" "<<s[sub[i]]<<endl; 
    } 
} 
原文地址:https://www.cnblogs.com/JasonPeng1/p/11922455.html