7-2 武林盟主
分数 10
全屏浏览
切换布局
作者 黄龙军
单位 绍兴文理学院
在传说中的江湖中,各大帮派要选武林盟主了,如果龙飞能得到超过一半的帮派的支持就可以当选,而每个帮派的结果又是由该帮派帮众投票产生的,如果某个帮派超过一半的帮众支持龙飞,则他将赢得该帮派的支持。现在给出每个帮派的帮众人数,请问龙飞至少需要赢得多少人的支持才可能当选武林盟主?
输入格式:
测试数据有多组,处理到文件尾。每组测试先输入一个整数n(1≤n≤20),表示帮派数,然后输入n个正整数,表示每个帮派的帮众人数ai(0<ai≤100)。
输出格式:
对于每组数据输出一行,表示龙飞当选武林盟主至少需要赢得支持的帮众人数。
输入样例:
3 5 7 5
4 6 6 7 5
输出样例:
6
11
来源:
[1] 黄龙军, 等. 大学生程序设计竞赛入门—C/C++程序设计(微课视频版), 北京:清华大学出版社, 2020.11. ISBN:9787302564744
[2] 黄龙军.程序设计竞赛入门(Python版),北京:清华大学出版社,2021.4. ISBN:9787302571230
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
答案:
#include<stdio.h>
int main(){
int aa[20];int n,sum=0;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d",&aa[i]);
}
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
if(aa[i]>aa[j]){
aa[i]=aa[i]+aa[j];
aa[j]=aa[i]-aa[j];
aa[i]=aa[i]-aa[j];
}
}
}
int t;
t=n/2+1;
for(int i=0;i<t;i++){
sum+=aa[i]/2+1;
}
printf("%d\n",sum);
sum=0;
}
return 0;
}