1 solutions
-
1
#include <bits/stdc++.h> using namespace std; int n,m,a[1000001],l = 0,r = -1,ans = -1; bool check(int x){ long long sum = 0; for(int i = 1;i<=n;i++)sum+=max(0,a[i]-x); return sum>=m; } int main() { scanf("%d%d",&n,&m); for(int i = 1;i<=n;i++){ scanf("%d",&a[i]); r = max(r,a[i]); } while(l<=r){ int mid = l+(r-l)/2; if(check(mid)){ ans = mid; l = mid+1; } else r = mid-1; } printf("%d",ans); return 0; }
- 1
Information
- ID
- 668
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 10
- Tags
- (None)
- # Submissions
- 2
- Accepted
- 2
- Uploaded By