In this

**HackerEarth Remove the element problem**You are given an integer array A of size N. You can perform an operation exactly N number of times. In the operation, you can remove one element from array A and the operation will cost Ai units if ith is removed from the array. The operation will take 1 second.Elements of array A will keep on increasing every second until it is removed. Let ith element is Ai at jth second. Then the ith element will increase by (j + 1) * Ai and the element will become Ai + (j + 1) * Ai at (j + 1)th second.

Your task is to find the minimum cost to remove all the elements from array A. As the answer can be very large, print the answer module 10^9 + 7.

## HackerEarth Remove the element problem solution.

`#include <bits/stdc++.h>`

using namespace std;

typedef long long int ll;

typedef pair<ll, ll> pll;

typedef vector<ll> vll;

typedef vector<int> vi;

#define pb push_back

const ll INF=1e18;

const int mod=1000000007;

ll arr[100005], fact[100005];

int main()

{

ll t,n,m,i,j,k;

fact[0]=1;

for (i=1;i<100005;++i)

fact[i]=(i*fact[i-1])%mod;

scanf ("%lld",&t);

while (t--)

{

scanf ("%lld",&n);

for (i=1;i<=n;++i)

scanf ("%lld",&arr[i]);

sort(arr+1,arr+n+1,[](ll x, ll y)

{

return x>y;

});

ll ans=0;

for (i=1;i<=n;++i)

ans=(ans+fact[i]*arr[i])%mod;

printf ("%lld\n",ans);

}

return 0;

}

## 0 Comments