fork(1) download
  1. // C. Maximum Median
  2. #define ll long long
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5. int main()
  6. {
  7. ll n, k;
  8. cin >> n >> k;
  9. ll index_median = n / 2;
  10. vector<ll> aa(n);
  11. vector<ll> a;
  12.  
  13. for (ll i = 0; i < n; i++)
  14. {
  15. cin >> aa[i];
  16. }
  17. sort(aa.begin(), aa.end());
  18.  
  19. for (ll i = index_median; i < n - 1; i++)
  20. {
  21. a.push_back(aa[i + 1] - aa[i]);
  22. }
  23.  
  24. ll x = aa[index_median];
  25.  
  26. for (ll i = 0; i < a.size(); i++)
  27. {
  28. ll z = (i + 1) * a[i];
  29. if (z <= k)
  30. {
  31. k -= z;
  32. x += a[i];
  33. }
  34. else
  35. {
  36. break;
  37. }
  38. }
  39.  
  40. x+=k/(a.size()+1);
  41. cout << x << endl;
  42.  
  43. return 0;
  44. }
Success #stdin #stdout 0.01s 5292KB
stdin
3 2
1 3 5
stdout
5