SOS 站外大水题
新学年,学校将成立信息兴趣小组提高班,由于指导老师精力有限,只能以选拔考试的成绩为依据,按从高到低的分数,从 N 个参加选拔的学生中录取不超过 M 个成员。录取的成员要尽可能的多,但不得超过 M 个(含 M 个),由于可能会有并列分数出现,为了保证公平,有时只得忍痛割爱,可能录取的成员会达不到计划数 M。 请你编程划定录取分数线。
文件有 N+1 行,第一行是报名人数 N 和录取人数 M。以下 N 行是考试成绩,已按照从高到低的顺序排列。N、M 和成绩均是1000以内的正整数, N>=M。数据保证不会所有的成绩都相同。
结果输出到文件中,只有1行,为录取分数线。
输入#1 \
10 5
99 98 97 96 95 94 93 92 91 90 \
输出#1 \
95
#include<bits/stdc++.h>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,cnt;
int a[10005];
int main()
{
ios::sync_with_stdio(NULL);
cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
if(a[m-1] != a[m])
{
cout<<a[m];
return 0;
}
int sub=m-1;
while(a[sub] == a[m])
{
sub--;
}
cout<<a[sub];
return 0;
}