您的位置:首页 > 大数据 > 人工智能

CodeFroces 810A Straight «A»

2017-05-23 16:57 363 查看
http://codeforces.com/problemset/problem/810/A

这道题说难不难,说容易也不算很好搞。。。反正就是给出一个mark,你要用最少的次数去达到这个mark,而且你每次加的分数也不能大于这个mark,所以就有hint里面的样例解释。只需要达到mark-0.5即可,这样就可以四舍五入了。浮点数总是不靠谱的,所以我们还是用整数吧。

我们直接把k扩大十倍,读入个n个成绩也扩大十倍,由于范围很小,直接暴力,直到(sum / (n + cnt))>= mark - 5才停止,输出cnt即可。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
int n, k;
int tmp, cnt = 0;
int sum = 0;
cin >> n >> k;
k *= 10;
for(int i = 0; i < n; i++){
cin >> tmp;
sum += tmp * 10;
}
while(sum / n < k - 5){
cnt++;
n++;
sum += k;
}
cout << cnt << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: