fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. long long N, M, sum = 0;
  6. vector<long long> A, psum;
  7. cin >> N >> M;
  8. for(int i = 0; i < N; i++) {
  9. long long tmp;
  10. cin >> tmp;
  11. A.push_back(tmp);
  12. }
  13. sort(A.begin(), A.end(), greater<long long>());
  14. for(int i = 0; i < N; i++) {
  15. sum += A[i];
  16. psum.push_back(sum-A[i]*(i+1));
  17. }
  18. /*
  19. for(int i = 0; i < N; i++)
  20. cout << A[i] << " ";
  21. cout << endl;
  22. for(int i = 0; i < N; i++)
  23. cout << psum[i] << " ";
  24. cout << endl;
  25. /**/
  26. int lo = 0, hi = N-1, mid;
  27. while(hi-lo > 0) {
  28. mid = (lo+hi)/2;
  29. if(psum[mid] < M)
  30. lo = mid+1;
  31. else
  32. hi = mid;
  33. }
  34. if(A[lo]+(psum[lo]-M)/lo >= 0)
  35. cout << A[lo]+(psum[lo]-M)/lo << endl;
  36. else
  37. cout << -1 << endl;
  38. return 0;
  39. }
Success #stdin #stdout 0s 5320KB
stdin
5 125
2 7 2 9 5
stdout
-1