题目描述:
某小学举办了一场校内的信息学竞赛选拔赛。现在同学们的成绩都出来了,负责信息学克赛的老师需要确定最终选拔赛的获奖名单。
为了鼓励大家,老师希望获奖人数不少于参赛总人数的一半。因此,老师需要确定一个获奖分数线,所有得分在分数线及以上的同学可以获奖在满足上面条件的情况下,老师希望获奖分数纬越高越好。
请同学们通过程序设计的方法来解决以上问题,确定获奖分数线和总获奖人数。
输入格式
第一行为一个整数n表示参赛总人数。
第二行为n个整数,分别表示n(1≤n≤100000)个参赛同学的分数,所有分数都是在0~100之间的整数(含0和100),每两个数之间用一个空格隔开。
输出格式
输出为一行,包括两个整数,分别表示分数线和获奖人数(中间用一个空格隔开).
思路:
主要在于对奇数偶数求分数线的归纳总结
代码:
#include <iostream>
#include <algorithm>
using namespace std;
int score[100010];
int main(){
int n,sx,cnt;//sx:分数线,award:获奖人数
cin>>n;//n:总参赛人数
for(int i = 0; i < n; i++){
cin>>score[i];
}
sort(score,score+n);
sx = score[n/2];
cnt = 0;
for(int i = 0; i < n;i++){
if(score[i]>=sx)
cnt++;
}
cout<<sx<<" "<<cnt<<endl;
return 0;
}