为什么MLE了???
查看原帖
为什么MLE了???
1285021
Gan2024楼主2024/7/16 14:24

代码如下(90pts求调):

#include <bits/stdc++.h>
using namespace std;

int a[1000001];
int n,m;
int ma=-1;
int ab=0;
	
int f(int L,int R){
	ab++;
	int l=L;
	int r=R;
	int mid=(l+r)/2;
	long long ans=0;
	for(int i=1;i<=n;i++){
		if(a[i]-mid>0){
			ans+=a[i]-mid;
		}
	}
	if(l>r){
		return mid;
	}
	if(ans>m){
		return f(mid+1,r);
	}
	if(ans<m){
		return f(l,mid-1);
	}
}

int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		ma=max(ma,a[i]);
	}
	cout<<f(1,ma);
	return 0;
}
2024/7/16 14:24
加载中...