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;
}