Cpp Code without sorting


#1
long long int findval(vector< int> &A ,int ind){
    long long int cv=0;
    for(auto i:A)
        if(i>ind)
            cv+=i-ind;
    return cv;
}
int Solution::solve(vector<int> &A,  int B) {
    if(A.size()==0)
    return 0;
    if(A.size()==1)
    return A[0]-B;
    long long int ans=-1;
    long long int st=0,ed=*max_element(A.begin(), A.end());
    while(st<=ed){
        // cout<<"here\n";
        long long int md=(st+ed)/2;
        long long int val= findval(A,md);
        if(val==B){
            ans=max(ans,md);
            break;
        }else if(val>B){
            ans=max(ans,md);
            st=md+1;
        }else{
            ed=md-1;
        }
    }
    return ans;
}