This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
// CEOI 2021 Day1 Diversity
#include <bits/stdc++.h>
using namespace std;
using LL = long long;
int main() {
ios::sync_with_stdio(false), cin.tie(0);
int n, q;
cin >> n >> q;
vector<int> A(n);
map<int, int> M;
for (int &a : A) cin >> a, M[a] = 0;
int k = 0;
for (auto &p : M) p.second = k++;
vector<LL> cnt(k);
for (int &a : A) a = M[a], ++cnt[a]; // 离散化
int L, R;
cin >> L >> R;
if (q > 1) return 0; // 只考虑64分的情况
assert(q == 1 && L == 1 && R == n);
LL ans = 0, BC[2] = {0}, bi = 0;
sort(cnt.begin(), cnt.end());
for (LL c : cnt) { // 实验确定: 最优解一定是 元素的出现次数先递增再递减
ans += c * (c + 1) / 2 + c * (n - c);
LL &b = BC[bi ^= 1];
ans += b * (n - c - b), b += c;
}
cout << ans << '\n';
return 0;
}
| # | 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... |