Submission #1191167

#TimeUsernameProblemLanguageResultExecution timeMemory
1191167user192837Diversity (CEOI21_diversity)C++17
64 / 100
42 ms7612 KiB
#include <bits/stdc++.h>
#define ar array
#define all(x) x.begin(), x.end()
using namespace std;
typedef long long ll;

const int N = 3e5 + 5;
int f[N];
ll ans = 0;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int n, q;
    cin >> n >> q;
    vector <int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        f[a[i]]++;
    }
    vector <ar <int, 2>> b;
    for (int i = 1; i < N; i++) {
        if (f[i] > 0) {
            b.push_back({f[i], i});
        }
    }
    sort(all(b));
    vector <ar <int, 2>> c;
    n = b.size();
    for (int i = 0; i < n; i += 2)
        c.push_back(b[i]);
    for (int i = (n - 1) - ((n - 1) % 2 == 0); i > 0; i -= 2)
        c.push_back(b[i]);
    ll ans = 0, p = 0, ps = 0;
    for (auto i : c) {
        ans += 1ll * i[0] * (i[0] + 1) / 2;
        ans += p * i[0];
        ps += i[0];
        p += i[0] + ps;
    }
    while (q--) {
        int l, r;
        cin >> l >> r;
        cout << ans << '\n';
    }
}
#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...