Ankit_132

Beautification of array

May 31st, 2023
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1.  
  2. #include <bits/stdc++.h>
  3.  
  4. using namespace std;
  5.  
  6. #define ll     long long
  7. #define _test   int _TEST; cin>>_TEST; while(_TEST--)
  8. #define pb     push_back
  9.  
  10.  
  11. int main()
  12. {
  13.     _test
  14.     {
  15.         ll int n, k;
  16.         cin>>n>>k;
  17.  
  18.         vector<ll int> a(n);
  19.         for(auto &e: a)
  20.             cin>>e;
  21.  
  22.         sort(a.begin(), a.end());
  23.  
  24.         ll int _val = a[0];
  25.  
  26.         ll int i;
  27.         for(i=1; i<n; i++)
  28.         {
  29.             if((a[i])*1ll*i - _val > k)
  30.                 break;
  31.  
  32.             _val += a[i];
  33.         }
  34.  
  35.         for(int j=0; j<i; j++)
  36.         {
  37.             k -= a[min(i, n)] - a[j];
  38.             a[j] = a[min(i, n)];
  39.         }
  40.  
  41.         for(int j=0; j<i; j++)
  42.         {
  43.             ll int x = k/(i-j);
  44.             k -= x;
  45.  
  46.             a[j] += x;
  47.         }
  48.  
  49.         ll int MOD = 1e9 + 7;
  50.  
  51.         ll int sum = accumulate(a.begin(), a.end(), 0ll);
  52.         sum %= MOD;
  53.  
  54.         ll int val = 0;
  55.         for(auto e: a)
  56.         {
  57.             (sum += (MOD - e)) %= MOD;
  58.             (val += sum*e) %= MOD;
  59.         }
  60.  
  61.         cout<<val<<"\n";
  62.     }
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment