10分求调
查看原帖
10分求调
1368992
I_AM_ACer楼主2024/9/4 19:05

这份代码两个样例都过了,但是只过了10分,蒟蒻看不出有什么错误,求各位大佬帮忙调调代码QWQ。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1000005;
int n,m;
int a[N];
int sum(int x)
{
	int cnt=0;
	int t=0;
	for(int i=1;i<=n;i++)
	{
		cnt+=max((a[i]-x),t);
	}
	return cnt;
}
inline int read()
{
	int x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9')
	{
		if(ch=='-')
		{
			f=-1;	
		}
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		x=x*10+ch-'0',ch=getchar();
	}
	return x*f;
}
signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>n>>m;
	int ma=0;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		ma=max(a[i],ma);
	}
	int l=1,r=ma;
	int ans=0;
	while(l<=r)
	{
		int mid=(l+r)/2;
		int s=sum(mid);
		if(s>m)
		{
			l=mid+1;
		}
		else
		{
			ans=mid;
			r=mid-1;
		}
	}
	cout<<ans;
	return 0;
}
2024/9/4 19:05
加载中...