Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int Solution::solve(vector<int> &A, int B) {
- int lo = 0 ;
- int hi = INT_MIN;
- for(int i = 0 ; i < A.size() ; i++){
- hi = max(hi, A[i]);
- }
- while(hi >= lo){
- int mid = lo + (hi-lo)/2;
- long long int sum = 0;
- for(int i = 0 ; i < A.size() ; i++){
- if(A[i] > mid){
- sum += A[i]-mid;
- }
- }
- if(sum == B)
- return mid;
- else if(sum < B){
- hi = mid - 1;
- }
- else
- lo = mid + 1;
- }
- return hi;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement