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

CF w1d2 B. Average Superhero Gang Power

时间:2020-04-10 00:56:01      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:code   correct   clu   bit   form   contains   asi   tmp   let   

Every superhero has been given a power value by the Felicity Committee. The avengers crew wants to maximize the average power of the superheroes in their team by performing certain operations.

Initially, there are n superheroes in avengers team having powers a1,a2,…,an, respectively. In one operation, they can remove one superhero from their team (if there are at least two) or they can increase the power of a superhero by 1. They can do at most m operations. Also, on a particular superhero at most k operations can be done.

Can you help the avengers team to maximize the average power of their crew?

Input

The first line contains three integers n, k and m (1≤n≤105, 1≤k≤105, 1≤m≤107) — the number of superheroes, the maximum number of times you can increase power of a particular superhero, and the total maximum number of operations.

The second line contains n integers a1,a2,…,an (1≤ai≤106) — the initial powers of the superheroes in the cast of avengers.

Output

Output a single number — the maximum final average power.

Your answer is considered correct if its absolute or relative error does not exceed 10?6.

Formally, let your answer be a, and the jury‘s answer be b. Your answer is accepted if and only if |a?b|max(1,|b|)≤10?6.

Examples

inputCopy
2 4 6
4 7
outputCopy
11.00000000000000000000

inputCopy
4 2 6
1 3 2 3
outputCopy
5.00000000000000000000

Note

In the first example, the maximum average is obtained by deleting the first element and increasing the second element four times.

In the second sample, one of the ways to achieve maximum average is to delete the first and the third element and increase the second and the fourth elements by 2 each.

看了标程才会。。太难了。。

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
ll a[100005],sum,n,m,k,num,tmp;
double ans;
int main()
{
	cin>>n>>k>>m;	
	for(int i=0;i<n;i++){
		cin>>a[i];
		sum+=a[i];
	}
	sort(a,a+n);
	num=n;
	ans=(double)(sum+min(n*k,m))/n;
	for(int i=1;i<n&&i<=m;i++)
	{
		sum-=a[i-1];
		tmp=sum+min(k*(n-i),m-i);
		ans=max(ans,(double)tmp/(double)(n-i));
	}
	cout<<fixed<<setprecision(20)<<ans;
	//printf("%llf",ans);
	return 0;
}

CF w1d2 B. Average Superhero Gang Power

标签:code   correct   clu   bit   form   contains   asi   tmp   let   

原文地址:https://www.cnblogs.com/LiangYC1021/p/12670495.html

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