马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <bits/stdc++.h>
#define int long long
using namespace std;
typedef long long ll;
const int N=2e5+10;
int n,k;
int a[N];
bool check(int mid)
{
ll ans=0;
for(int i=1;i<=n;i++)
{
if(mid>a[i])
{
ans+=mid-a[i];
}
}
return ans>=k;
}
signed main()
{
int t;
cin>>t;
while(t--)
{
// int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
ll l=0,r=1e10+10;
while(l+1<r)
{
ll mid=l+r>>1;
if(check(mid)) r=mid;
else l=mid;
}
cout<<r<<endl;
}
}
https://codeforces.com/contest/1873/problem/E
不知道哪里错了,求指正,有的值比原来的还要多1
|