Submission #1167335

#TimeUsernameProblemLanguageResultExecution timeMemory
1167335thinknoexitDiversity (CEOI21_diversity)C++20
0 / 100
0 ms332 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 300300;
int a[N];
ll qs[N];
int cnt[N];
int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
    int n, q;
    cin >> n >> q;
    for (int i = 1;i <= n;i++) {
        cin >> a[i];
        cnt[a[i]]++;
    }
    sort(a + 1, a + 1 + n, [&](int a, int b) {
        if (cnt[a] != cnt[b]) return cnt[a] > cnt[b];
        return a < b;
        });
    // Subtask : l = 1, r = n, Q = 1
    while (q--) {
        int __;
        cin >> __ >> __;
    }
    ll ans = 1ll * n * (n + 1) / 2;
    for (int i = 1;i <= n;i++) {
        qs[i] = qs[i - 1] + (a[i] != a[i - 1]);
        ans += qs[i] * i;
        ans -= qs[i] * (n - i + 1);
    }
    cout << ans << '\n';
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...