60分,蒟蒻求调
查看原帖
60分,蒟蒻求调
798860
tysgk楼主2023/1/16 10:54

大佬们帮忙看一看,第二个点压根输不进去

#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 ) ;
}

2023/1/16 10:54
加载中...