题目链接
题目思路
二分,数据比较大的时候r设的大一些,不然易wa
代码实现
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int Max=1e5;
ll n,m,c[Max];
bool check(ll x)
{
ll res=0;
for(int i=1;i<=n;i++)
{
res+=(max(c[i],x)-c[i]);
}
return res<=min(m,x);
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>c[i];
ll l=0,r=1e9;
while(l<r)
{
ll mid=(l+r+1)>>1;
if(check(mid))
{
l=mid;
}
else r=mid-1;
}
cout<<l<<endl;
return 0;
}
京公网安备 11010502036488号