Submission #1318315

#TimeUsernameProblemLanguageResultExecution timeMemory
1318315spetrDiversity (CEOI21_diversity)C++20
0 / 100
14 ms23864 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
const ll mmod = 998244353;  
#define vl vector<long long>
#define vll vector<vector<long long>>
#define pl pair<long long, long long>
#define vb vector<bool>

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    ll n, q;
    cin >> n >> q;
    vl nums (n);
    for (ll i = 0; i < n; i++){cin >> nums[i];}
    ll l, r;
    cin >> l >> r;

    vl a (3000001, 0);
    for (ll i = 0; i < n; i++)a[nums[i]]++;
    vector<pl> pary;
    for (ll i = 0; i < n; i++){if (nums[i] != 0){pary.push_back({a[i], i});}}
    sort(pary.begin(), pary.end());
    nums.clear();
    for (auto x : pary){
        for (ll i = 0; i < x.first; i++){
            nums.push_back(x.second);
        }
    }
    vl dp (n, 1);

    for (ll i = 1; i < n; i++){
        if (nums[i] == nums[i-1]){
            dp[i] = dp[i-1]+1;
        }
        else{
            dp[i] = dp[i-1] + 1 + i;
        }
    }
    ll suma = 0;
    for (ll i = 0; i < n; i++){suma += dp[i];}
    cout << suma << "\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...