题目链接
题目思路
二分,数据比较大的时候r设的大一些,不然易wa
代码实现
#include<bits/stdc++.h> using namespace std; #define ll long long const int Max=1e5; ll n,m,c[Max]; bool check(ll x) { ll res=0; for(int i=1;i<=n;i++) { res+=(max(c[i],x)-c[i]); } return res<=min(m,x); } int main() { ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); cin>>n>>m; for(int i=1;i<=n;i++) cin>>c[i]; ll l=0,r=1e9; while(l<r) { ll mid=(l+r+1)>>1; if(check(mid)) { l=mid; } else r=mid-1; } cout<<l<<endl; return 0; }