二分准备写一道题的,没想到50分 QWQ
#include<iostream>
#include<string>
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
long long n,m,g[1000005],ma;
long long KILL(long long t);
long long my_kill(long long t);
long long my_max(long long a,long long b);
long long ef(long long l,long long r,long long t){
long long z,k;
while(l<r){
k=(l+r)/2;
z=KILL(k);
if(z==t)return k;
else if(z<t)r=k;
else l=k+1;
}
return k;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>g[i];
ma=my_max(ma,g[i]);
}
cout<<ef(1,ma,m);
return 0;
}
long long my_max(long long a,long long b){
if(a>b)return a;
else return b;
}
long long KILL(long long t){
long long ans=0;
for(int i=1;i<=n;i++)ans+=my_kill(g[i]-t);
return ans;
}
long long my_kill(long long t){
if(t<0)return 0;
else return t;
}
自己是蒙了