Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define int long long
- #define MAXN 200000+5
- using namespace std;
- int n,m;
- int max_sum,sum,d,now,k;
- int num[MAXN];
- signed main(){
- cin >> n >> m;
- for(int i=1;i<=n;i++){
- cin >> num[i];
- max_sum+=num[i];
- }
- sort(num,num+n);
- now=n;
- if(max_sum<m){
- cout << -1 << endl;
- }
- else{
- int ub=n+1,lb=0;
- while(ub-lb>1){
- int mid=ub+lb>>1;
- sum=0;
- k=0;
- for(int j=0;k<n;j++){
- for(int p=0;p<mid && k<n;p++){
- sum+=max(num[n-k]-j,0ll);
- k++;
- }
- }
- if(sum>=m) ub=mid;
- else lb=mid;
- }
- cout << ub << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement