Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define ll long long
- int rem(int i,int j){
- if(i%j) return 1;
- else return 0;
- }
- int main(){
- ll t;
- cin>>t;
- while(t--){
- ll n;
- ll k;
- cin>>n>>k;
- vector<ll>a(n);
- ll sum=0;
- for(ll i=0;i<n;i++){
- cin>>a[i];
- sum+=a[i];
- }
- if(sum<=k){
- cout<<0<<endl;
- }
- else{
- ll diff=sum-k;
- if(diff>1){
- sort(a.begin(),a.end());
- ll minm=a[0];
- ll steps=INT_MAX;
- ll decr=0;
- for(ll i=n-1;i>=0;i--){
- // cout<<"element "<<a[i]<<endl;
- decr+=a[i]-minm;
- // cout<<"decr "<<decr<<endl;
- // cout<<"2nd steps "<<n-i<<endl;
- if(decr>=diff){
- steps=min(steps,n-i);
- }
- else{
- if(i!=0){
- ll extra=(diff-decr)/(n-i+1)+rem((diff-decr),(n-i+1));
- steps=min(steps,n-i+extra);
- }
- else{
- steps=min(steps,diff);
- }
- }
- // cout<<"steps "<<steps<<endl;
- }
- cout<<steps<<endl;
- }
- else{
- cout<<1<<endl;
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment