fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. #define N 105
  5. long long m, n, a[N], X=0;
  6. bool compar(long long a, long long b)
  7. {
  8. return b<a;
  9. }
  10. long long findD(long long mid){
  11. long long s=0, c=0, i=0;
  12. while(i<n){
  13. int j = i;
  14. while(j<n && j < i+mid){
  15. s += max(X, a[j] - c);
  16. j++;
  17. }
  18. c++;
  19. i=j;
  20. }
  21. return s;
  22. }
  23. int main()
  24. {
  25. long long ans = 10000000;
  26. cin>>n>>m;
  27.  
  28. for(int i=0;i<n;i++)
  29. cin>>a[i];
  30.  
  31. sort(a, a+n, compar);
  32.  
  33. long long lo = 1, hi = n;
  34. bool f = 0;
  35.  
  36. while(lo <= hi) {
  37. long long mid = lo + (hi-lo+1)/2;
  38.  
  39. long long s = findD(mid);
  40.  
  41. if(s >= m){
  42. ans = min(ans, mid);
  43. hi=mid-1;
  44. f=1;
  45. }
  46. else{
  47. lo=mid+1;
  48. }
  49. }
  50.  
  51. if(f){
  52. cout<<ans;
  53. }
  54. else cout<<-1;
  55.  
  56. return 0;
  57. }
  58.  
Success #stdin #stdout 0s 15240KB
stdin
1 10
9000000000
stdout
1