1 solutions
-
0
虎鲸der
砍树过程题解很普通的二分,没啥说的,自己看吧:)
虎鲸不会砍树(一句废话。
#include<bits/stdc++.h> using namespace std; int n,m; const int M=1e6+2; int a[M]; bool check(int mid){ int s=0; for(int i=1;i<=n;i++){ if(a[i]<mid){ continue; } s+=a[i]-mid; } if(s>=m) return 1; return 0; } int main(){ cin>>n>>m; int max1=0; for(int i=1;i<=n;i++){ cin>>a[i]; max1=max(max1,a[i]); } int l=0,r=max1; int ans=0; while(l<=r){ int mid=(r+l)/2; if(check(mid)){ l=mid+1; ans=mid; } else{ r=mid-1; } } cout<<ans; return 0; }
- 1
Information
- ID
- 25
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 3
- Accepted
- 1
- Uploaded By