大佬们帮忙看一看,第二个点压根输不进去
#include<bits/stdc++.h>
using namespace std ;
long long n , m ;
long long tr1[ 100001 ] ;
bool check ( long long x ) {
long long sum = 0 ;
for ( int i = 0 ; i < n ; i++ ) {
if ( tr1[ i ] > x ) sum += tr1[ i ] - x ;
}
if ( sum >= m ) return true ;
else return false ;
}
int main () {
scanf ( "%lld%lld" , &n , &m ) ;
int tr[ n ] ;
for ( int i = 0 ; i < n ; i++ ) {
scanf ( "%lld" , &tr[ i ] ) ;
tr1[ i ] = tr[ i ] ;
}
long long l = 0 , r = 1000000000 ;
long long mid , ans ;
while ( l <= r ) {
mid = ( l + r ) / 2 ;
if ( mid == 0 ) break ;
if ( check ( mid ) ) {
ans = mid ;
l = mid + 1 ;
}
else r= mid - 1 ;
}
printf ( "%lld" , ans ) ;
}