1 条题解

  • 0
    @ 2024-1-10 15:30:34
    #include <bits/stdc++.h>
    using namespace std;
    const int N=1000005;
    int n,m,k,s,t,h[N];
    int check(int x){
    	long long ans=0;
    	for (int i=1;i<=n;++i) ans+=max(0,h[i]-x);
    	return ans>=m;
    }
    int main()
    {
    	cin>>n>>m;
    	int l=0,r=0;
    	for (int i=1;i<=n;++i) cin>>h[i],r=max(r,h[i]);
    	while (l<=r){
    		int mid=(l+r)/2; 
    		if (check(mid)) l=mid+1;
    		else r=mid-1;
    	}
    	cout<<r;
    }
    
    • 1

    信息

    ID
    648
    时间
    1000ms
    内存
    125MiB
    难度
    5
    标签
    递交数
    205
    已通过
    80
    上传者