40pts求调
查看原帖
40pts求调
916380
yyjw14楼主2023/9/16 20:36
#include<bits/stdc++.h>
using namespace std;
long long a[1000005];
long long maxx,m,n,i,j,k,ans,sum;
long long erfen(long long l,long long r)
{
   
	sum=0;
	if(l==r)
    {
        return ans;
    }
    long long mid=(l+r)/2;
  	if(mid>maxx)
	{
	 	return erfen(l,mid-1);
	}
    for(m=1;m<=i;m++)
    {
        if(a[m]>=mid)
        {
            sum+=a[m]-mid;
        }
    }
    if(sum>=j)
    {
        ans=mid;
        return erfen(mid+1,r);
    }
    else
    {
        return erfen(l,mid-1);
    }
}
int main()
{
    freopen("P1873_2.in","r",stdin); 
	ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    cin>>i>>j;

    for(k=1;k<=i;k++)
    {
        cin>>a[k];
        if(a[k]>=maxx)
        {
        	maxx=a[k];
        }
    }
    long long anss=erfen(1,1e9);
    cout<<anss;
    
}
2023/9/16 20:36
加载中...