RT,我的代码在这个用例会错:
3 3
0 6 0
代码如下:
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[100009];
int n,m;
inline bool check(int x)
{
int sum=0;
for(int i=1;i<=n;i++)
sum+=max(0ll,x-a[i]);
return sum<=min(m,x);
}
signed main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
int l=1,r=1e10;
while((l+1)<r)
{
int mid=l+r>>1;
if(check(mid)) l=mid;
else r=mid;
}
cout<<l;
return 0;
}
建议加强数据……