Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long
- #define _test int _TEST; cin>>_TEST; while(_TEST--)
- #define pb push_back
- int main()
- {
- _test
- {
- ll int n, k;
- cin>>n>>k;
- vector<ll int> a(n);
- for(auto &e: a)
- cin>>e;
- sort(a.begin(), a.end());
- ll int _val = a[0];
- ll int i;
- for(i=1; i<n; i++)
- {
- if((a[i])*1ll*i - _val > k)
- break;
- _val += a[i];
- }
- for(int j=0; j<i; j++)
- {
- k -= a[min(i, n)] - a[j];
- a[j] = a[min(i, n)];
- }
- for(int j=0; j<i; j++)
- {
- ll int x = k/(i-j);
- k -= x;
- a[j] += x;
- }
- ll int MOD = 1e9 + 7;
- ll int sum = accumulate(a.begin(), a.end(), 0ll);
- sum %= MOD;
- ll int val = 0;
- for(auto e: a)
- {
- (sum += (MOD - e)) %= MOD;
- (val += sum*e) %= MOD;
- }
- cout<<val<<"\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment