Advertisement
pdpd123

Untitled

Feb 19th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.67 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define int long long
  3. #define MAXN 200000+5
  4. using namespace std;
  5.  
  6. int n,m;
  7. int max_sum,sum,d,now,k;
  8. int num[MAXN];
  9.  
  10. signed main(){
  11.  
  12.   cin >> n >> m;
  13.  
  14.   for(int i=1;i<=n;i++){
  15.     cin >> num[i];
  16.     max_sum+=num[i];
  17.   }
  18.  
  19.   sort(num,num+n);
  20.   now=n;
  21.   if(max_sum<m){
  22.     cout << -1 << endl;
  23.   }
  24.   else{
  25.  
  26.     int ub=n+1,lb=0;
  27.  
  28.     while(ub-lb>1){
  29.       int mid=ub+lb>>1;
  30.       sum=0;
  31.       k=0;
  32.       for(int j=0;k<n;j++){
  33.         for(int p=0;p<mid && k<n;p++){
  34.           sum+=max(num[n-k]-j,0ll);
  35.           k++;
  36.         }
  37.       }
  38.       if(sum>=m) ub=mid;
  39.       else lb=mid;
  40.     }
  41.     cout << ub << endl;
  42.   }
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement