满江红

P1068 [NOIP2009 普及组] 分数线划定

稍稍改了一下 ``` #include<bits/stdc++.h> #define z int #define ll long long #define maxn 5050 using namespace std; struct str { int k,s; }s[maxn]; bool cmp(str a,str b)//这里cmp改了一下 { if(a.s<b.s) return 0; else if(a.s==b.s) { return a.k<b.k; } else return 1; } int main() { ll n,m,sp,num; cin>>n>>m; for(z i=1;i<=n;i++) { cin>>s[i].k>>s[i].s; } sp=m*3/2; sort(s+1,s+n+1,cmp); while(s[sp+1].s==s[sp].s&&sp+1<=n)sp++;//判断重分并增加录取人数 cout<<s[sp].s<<' '<<sp<<endl; for(z i=1;i<=sp;i++) { cout<<s[i].k<<' '<<s[i].s<<endl; } return 0; } //int dimier(int x) //{ // double l=1,r=n,m; // while(l<=r) // { // m=(l+r)/2; // if(x<a[m]) // r=m-1; // else if(x>a[m]) // l=m+1; // else if(x==a[m]) // l=m+1; // } // if(a[m]==x) // return l-1; // else // return -1; //} ```
by Wilderness_114514 @ 2023-12-28 08:32:28


此帖结
by kailangdewangyo @ 2023-12-28 12:47:37


已关
by kailangdewangyo @ 2023-12-28 14:04:44


|