SOS
  • 板块学术版
  • 楼主HeiGi
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/11/10 18:48
  • 上次更新2023/10/27 03:30:29
查看原帖
SOS
574852
HeiGi楼主2022/11/10 18:48

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

90pts求调

#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;  
}
2022/11/10 18:48
加载中...