fork download
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<string>
  4. #include<vector>
  5. #include<set>
  6. #include<unordered_set>
  7. #include<map>
  8. #include<unordered_map>
  9. #include<queue>
  10. #include<stack>
  11. #include<list>
  12. #include<iomanip>
  13. #include<utility>
  14. #include<bitset>
  15. #include<algorithm>
  16. #include<climits>
  17. #include<cctype>
  18. #include<cstring>
  19. #include<cmath>
  20. using namespace std;
  21. #define loop(i,a,b) for(int i=a; i<b; i++)
  22. #define PII pair<int,int>
  23. #define FF first
  24. #define SS second
  25. #define ll long long
  26.  
  27. int main()
  28. {
  29. std::ios_base::sync_with_stdio(false);
  30. std::cin.tie(0);
  31. std::cout.tie(0);
  32. int t;
  33. cin >> t;
  34. while(t--)
  35. {
  36. ll n, s, arr[20005];
  37. cin >> n >> s;
  38. loop(i,0,n)
  39. cin >> arr[i];
  40. sort(arr, arr+n);
  41. ll dp[20005];
  42. dp[0] = arr[0];
  43. loop(i,1,n)
  44. dp[i] = dp[i-1]+arr[i];
  45. ll lo = 0, hi = n-1, x;
  46. while(lo<hi)
  47. {
  48. ll mid = (lo+hi+1)/2;
  49. ll ans = arr[mid]*(n-mid)+ (mid>0? dp[mid-1] : 0);
  50. if(ans > s)
  51. hi = mid-1;
  52. else
  53. lo = mid;
  54. }
  55. if(arr[lo]*(n-lo)+ (lo>0? dp[lo-1] : 0) == s)
  56. cout << arr[lo] << endl;
  57. else
  58. cout << "-1\n";
  59. }
  60. return 0;
  61. }
  62.  
Success #stdin #stdout 0s 15424KB
stdin
Standard input is empty
stdout
Standard output is empty