分奖金(multiset)

分奖金Time Limit: 1 SecMemory Limit: 128 MBSubmit: 252Solved: 156[Submit][Status][Web Board]Description

校acm竞赛决定给参赛选手发奖金了!当然,只有做题数量最多的选手(可能有多个)能平分奖金。今年奖金总共为C元,有n名参赛选手,,已知他们的做题数量。求做题最多的选手每人能获得多少奖金?

Input

第一行只有一个整数T(1<=T<=20),表示数据组数。每组数据第一行有2个整数C, n(1<=C<=888, 1<=n<=100);第二行有n个整数Pi(0<=Pi<=11), 表示每个人做题的数量。输入保证至少有一个人做出题目。

Output

对于每一组数据输出一个整数,表示人均奖金(只保留整数部分)。

Sample Input220 36 6 520 45 5 5 4Sample Output106代码:#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; }

生活是一段奇妙的旅行,就在那一去无返的火车上。

分奖金(multiset)

相关文章:

你感兴趣的文章:

标签云: