Cod sursa(job #3258695)

Utilizator wiki__Andrei Alecu izsak wiki__ Data 23 noiembrie 2024 12:55:58
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cstdint>
#include <deque>
using namespace std;

ifstream cin("secv5.in");
ofstream cout("secv5.out");

int v[10000];
int n,l,u;

int check(int x) {

    int fp = 0,sp = 0,c = 0,ans = 0;

    unordered_map<int,int> vf;

    while (sp < n) {

        vf[v[sp]] ++;

        if (vf[v[sp]] == 1) c++;

        while (c > x) {

            vf[v[fp]] --;

            if (vf[v[fp]] == 0) c--;

            fp++;

        }

        ans += sp - fp;

        sp++;

    }

    return ans;


}

int32_t main() {

    cin>>n>>l>>u;

    for (int i=0; i<n; i++) {
        cin>>v[i];
    }

    cout<<check(u) - check(l-1);

}