➤ Problem Link : EKO
👉 Hint : edit please
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
ll arr[1000001];
ll m;
bool f(ll mid,ll n)
{
ll i;
ll diff=0;
for(i=0;i<n;i++)
{
if(arr[i]>mid)
{
diff+=arr[i]-mid;
}
if(diff>=m)
return true;
}
return false;
}
int main()
{
ll n;
cin>>n>>m;
ll i,max=INT_MIN;
for(i=0;i<n;i++)
{
cin>>arr[i];
if(arr[i]>max)
max=arr[i];
}
ll low=0;
ll high=max;
while(low<high)
{
ll mid=low+(high-low+1)/2;
if(f(mid,n))
low=mid;
else
high=mid-1;
}
cout<<high;
return 0;
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
