#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
int main(){
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
int n, q;
cin>>n>>q;
if(q!=1) return 0;
vector<int> a(n);
for(int i=0; i<n; i++){
cin>>a[i];
}
sort(a.begin(), a.end());
vector<ll> c;
int curr=0;
int l=-1;
for(int i=0; i<n; i++){
if(a[i]==l) curr++;
else{
c.push_back(curr);
curr=1;
l=a[i];
}
}
cin>>l>>l;
c.push_back(curr);
sort(c.begin(), c.end());
//need to reorder c
l=c.size();
vector<ll> d(l);
for(int i=0; i<l; i++){
if(i%2==0){
d[(l)/2+i/2]=c[l-i-1];
}
else{
d[(l)/2-(i+1)/2]=c[l-i-1];
}
}
ll s=0;
ll sum=0;
ll ans=0;
for(ll r : d){
ans+=(r*(r+1))/2;
ans+=s*r;
sum+=r;
s+=sum+r;
}
cout<<ans;
}
| # | 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... |