Cod sursa(job #3221194)

Utilizator gBneFlavius Andronic gBne Data 6 aprilie 2024 11:40:04
Problema Secventa 5 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("secv5.in");
ofstream fout("secv5.out");

const int NMax = (1 << 20) + 5;

int V[NMax];

long long cnt(int P, int N){
    long long numar = 0, prec = 0;
    long long st = 1;
    unordered_map<int, int> M;
    for(int i=1; i<=N; ++i){
        M[V[i]] ++;
        prec ++;
        while(M.size() > P){
            M[V[st]] --;
            if(M[V[st]] == 0){
                M.erase(V[st]);
            }
            st ++;
            prec --;
        }
        numar += prec;
    }
    return numar;
}

int main()
{
    int N, L, U;
    fin >> N >> L >> U;
    for(int i=1; i<=N; ++i){
        fin >> V[i];
    }
    fout << cnt(U, N) - cnt(L - 1, N);
    return 0;
}