70分求调
查看原帖
70分求调
531085
wq_pw楼主2023/12/27 22:21
/*(^v^)*/
#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int N=1e6+5;
int n,m,a[N];
int getans(int h)
{
	int res=0,x=0;
	for(int i=1;i<=n;i++) res+=max(x,a[i]-h);
	return res;
}
signed main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)  cin>>a[i];			
	int l=1,r=n,mid;
	while(l<=r)
	{
		mid=l+(r-l)/2;
		int ans=getans(mid);
		if(ans==m)
		{
			cout<<mid;
			return 0;
		}
		else if(ans>m)  l=mid+1;
		else r=mid-1;
	}
	cout<<r;
	return 0;
}
/*(^v^)*/

样例1是过了的

2023/12/27 22:21
加载中...