1 条题解
-
0
本题是一道难度不高的模拟题。
唯一需要注意的是,进入面试的人数并不一定就是,因为有可能会出现和第 名分数相同但排在第 名后面的选手。
AC代码:
#include<bits/stdc++.h> #define ll long long using namespace std; const ll N=5005; ll n,m,k,p,ans; struct node{ ll id,val; }a[N]; bool cmp(node x,node y){ return x.val==y.val?x.id<y.id:x.val>y.val; } vector<node> vec; // 用于存储进入面试的选手 int main(){ scanf("%lld%lld",&n,&m); k=floor(1.5*m); for(ll i=1;i<=n;i++) scanf("%lld%lld",&a[i].id,&a[i].val); sort(a+1,a+1+n,cmp); p=a[k].val; for(ll i=1;i<=n;i++) if(a[i].val>=p) vec.push_back(a[i]),ans++; else break; // 如果a[i].val<p,那么后面的元素也一定会小于p,就可以直接break掉 printf("%lld %lld\n",p,ans); for(ll i=0;i<vec.size();i++) printf("%lld %lld\n",vec[i].id,vec[i].val); return 0; }
- 1
信息
- ID
- 676
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 4
- 标签
- 递交数
- 125
- 已通过
- 62
- 上传者