#include <bits/stdc++.h>
using namespace std;
#define int long long
const int modulo = 1e9+7;
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int N,Q;
cin >> N >> Q;
vector<int> arr(N);
for(int&i:arr)cin>>i;
vector<int> newarr;
{
int c=0;
map<int,int> comp;
for(int&i:arr){
if(!comp.count(i)){
comp[i]=c++;
newarr.emplace_back(0);
}
newarr[comp[i]]++;
}
}
sort(newarr.rbegin(),newarr.rend());
int cost = 0;
swap(arr,newarr);
int n = arr.size();
int t = 0;
deque<int> ans;
for(int i=0;i<n;i++){
int prevCost = 0;
int nextCost = 0;
for(int x=0;x<ans.size();x++){
prevCost+=ans[x]*(x+1);
nextCost+=ans[x]*(ans.size()-x);
}
if(prevCost<nextCost){
ans.emplace_front(arr[i]);
} else {
ans.emplace_back(arr[i]);
swap(nextCost,prevCost);
}
cost+=prevCost*arr[i];
cost+=t*arr[i];
cost+=((arr[i]+1ll)*arr[i])/2ll;
t+=arr[i];
}
cout << cost << '\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |