Submission #1214650

#TimeUsernameProblemLanguageResultExecution timeMemory
1214650JuanJLDiversity (CEOI21_diversity)C++20
4 / 100
7092 ms1092 KiB
#include <bits/stdc++.h>

#define fst first
#define snd second
#define pb push_back
#define forn(i,a,b) for(int i = a; i<b; i++)
#define SZ(x) (int)x.size()
#define ALL(x) x.begin(),x.end()
#define mset(a,v) memset(a,v,sizeof(a))
#define FIN ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
typedef long long ll;

int main(){FIN;
    ll n; cin>>n;
    ll q; cin>>q;
    vector<ll> a(n); forn(i,0,n) cin>>a[i];

    map<ll,ll> mp; 
    forn(i,0,n) mp[a[i]]++;

    vector<pair<ll,ll>> ord;
    for(auto i:mp) ord.pb({i.snd,i.fst});

    sort(ALL(ord));

    ll l ,r; l = 0; r = n-1;
    forn(i,0,SZ(ord)){
        if(i%2==0){
            forn(j,l,l+ord[i].fst){
                a[j]=ord[i].snd;
            }
            l+=ord[i].fst;
        }else{
            for(int j = r; j>r-ord[i].fst; j--){
                a[j]=ord[i].snd;
            }
            r-=ord[i].fst;
        }
    }

    //forn(i,0,n) cout<<a[i]<<" "; cout<<'\n';

    cin>>l>>r;
    ll res = 0;
    forn(i,0,n){
        set<ll> s;
        forn(j,i,n){
            s.insert(a[j]);
            res+=SZ(s);
        }
    }

    cout<<res<<'\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...