神奇的东东增加了
查看原帖
神奇的东东增加了
594257
sad_desert楼主2022/2/4 19:57

这连样例都过不了但你在while循环里的cout的注释删掉就过了样例求助```

#include<bits/stdc++.h> using namespace std; int a[1000010]; long long n,mid,m; int max1(int a,int b){ if(a>b)return a; return b; } int check(){ int ans; for(int i=0;i<n;i++)ans+=max1((a[i]-amid),0); return ans; } int main(){ cin>>n>>m; for(int i=0;i<n;i++)cin>>a[i]; sort(a,a+n); int l=a[0],r=a[n-1]; while(l<r){ //cout<<" "; mid=(l+r)/2; if(check()>m)l=mid+1; else r=mid; } cout<<l; return 0; }

2022/2/4 19:57
加载中...