➤ Problem Link : 1201C. Maximum Median
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; #define ll long long int bool f(int v,ll arr[],int n,int k) { int x=n/2; ll val=0; for(int i=x;i<n && arr[i]<v;i++) { val+=v-arr[i]; if(val>k) return false; } if(val>k) return false; return true; } int main() { ll n,k; cin>>n>>k; ll arr[n]; for(int i=0;i<n;i++) cin>>arr[i]; sort(arr,arr+n); int x=n/2; ll low=arr[x]; ll high=low+k+1; ll mid; while(low<high) { mid=low+(high-low+1)/2; if(f(mid,arr,n,k)) low=mid; else high=mid-1; } cout<<high; }
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!!