求教大神为什么会TLE,还有一个点WA,谢谢谢谢
  • 板块学术版
  • 楼主sheenaringo
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/10/30 19:58
  • 上次更新2023/11/2 10:39:17
查看原帖
求教大神为什么会TLE,还有一个点WA,谢谢谢谢
1091683
sheenaringo楼主2023/10/30 19:58
using namespace std;
typedef unsigned long long ll;
ll n,m,a[1000005],ans,sum,l=0,r;
inline int read() //快读
{
   int s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
   return s*w;
}

bool find(long long x){
	long long sum=0;
	for(int i=1;i<=n;i++){
		if(a[i]>x){
			sum+=a[i]-x;
		}
	}
	return sum>=m;
}
int main(){
	n=read();m=read();
	for(int i=1;i<=n;i++){
		a[i]=read();
		r=max(l,a[i]);
	}
	while(l<=r){
		ll mid=l+r>>1;
		for(int i=1;i<=n;i++){
			if(find(mid)){
				ans=mid; 
				l=mid+1;
			}
			else {
				r=mid-1;
			}
		}
	}
	cout<<ans;
	return 0;
}```
2023/10/30 19:58
加载中...