校acm竞赛决定给参赛选手发奖金了!当然,只有做题数量最多的选手(可能有多个)能平分奖金。
今年奖金总共为C元,有n名参赛选手,已知他们的做题数量。
求做题最多的选手每人能获得多少奖金?
标签:stl
校acm竞赛决定给参赛选手发奖金了!当然,只有做题数量最多的选手(可能有多个)能平分奖金。
今年奖金总共为C元,有n名参赛选手,已知他们的做题数量。
求做题最多的选手每人能获得多少奖金?
第一行只有一个整数T(1<=T<=20),表示数据组数。
每组数据第一行有2个整数C, n(1<=C<=888, 1<=n<=100);
第二行有n个整数Pi(0<=Pi<=11), 表示每个人做题的数量。
输入保证至少有一个人做出题目。
对于每一组数据输出一个整数,表示人均奖金(只保留整数部分)。
2
20 3
6 6 5
20 4
5 5 5 4
10
6
代码:
#include<set> #include<cstdio> using namespace std; multiset<int> mst; int main() { int t; scanf("%d",&t); int c,n; while(t--) { mst.clear(); int maxx=-999; scanf("%d%d",&c,&n); for(int i=1; i<=n; i++) { int x; scanf("%d",&x); if(x>maxx) { maxx=x; } mst.insert(x); } multiset<int>::iterator it; it=lower_bound(mst.begin(),mst.end(),maxx); int cnt=0; while(it!=mst.end()) { it++; cnt++; } int ans=c/cnt; printf("%d\n",ans); } return 0; }
标签:stl
原文地址:http://blog.csdn.net/xky1306102chenhong/article/details/45439179