码迷,mamicode.com
首页 > 其他好文 > 详细

CF-1111B-Average Superhero Gang Power

时间:2019-02-06 21:18:22      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:const   http   span   names   clu   printf   c++   data-   app   

首先,对于这题我们要知道要删除一个数使平均值最大一定是删除最小的数,然后我们假设删除操作执行了i次,也就是删除最小的i个数。在已知删除操作次数之后求增加操作的次数就容易了,当然是m - i和k * (n - i)中比较小的数啦。用一个ans变量记录结果,遍历i,更新ans,得到最终的ans。

B - Average Superhero Gang Power GNU C++11 Accepted 46 ms 400 KB
#include "bits/stdc++.h"
using namespace std;
typedef long long LL;
const int MAXN = 1e5 + 5;
int arr[MAXN];
double ans;
int main() {
    int n, k, m;
    scanf("%d%d%d", &n, &k, &m);
    LL sum = 0;
    for (int i = 1; i <= n; i++) {
        scanf("%d", &arr[i]);
        sum += arr[i];
    }
    sort(arr + 1, arr + 1 + n);
    for (int i = 0; i < n && i <= m; i++) {
        sum -= arr[i];
        // min和max函数要求两个参数数据类型相同,k * (n - i)可能爆int,所以两边都转成LL; 
        ans = max(ans, (sum + min(1LL * m - i, 1LL * k * (n - i))) * 1.0 / (n - i));
    }
    printf("%.8lf", ans);
    return 0;
}

 

CF-1111B-Average Superhero Gang Power

标签:const   http   span   names   clu   printf   c++   data-   app   

原文地址:https://www.cnblogs.com/Angel-Demon/p/10353999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!