改AC就关注,AC1个点,TLE9个点
#include <bits/stdc++.h>
using namespace std;
long long M,N,H[1000010];
long long countsum(long long midd){
long long sum = 0;
for(int i = 1;i<=N;i++){
if(H[i]>midd) sum+=H[i]-midd;
}
return sum;
}
int main(){
cin >> N >> M;
for(int i = 1;i <= N;i++){
cin >> H[i];
}
long long maxx,minn,midd,sum;
sort(H+1,H+N+1);
minn = H[0];
maxx = H[N];
while(1){
midd = minn + (maxx-minn) / 2;
sum=countsum(midd);
if(sum == M){
cout << midd;
return 0;
}else if(sum < M){
maxx = midd;
}else{
minn = midd;
}
}
}
救救蒟蒻吧!!!