Cod sursa(job #2948072)

Utilizator andrei81Ragman Andrei andrei81 Data 27 noiembrie 2022 11:02:28
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <unordered_set>
#include <unordered_map>
#include <string>
#include <vector>
#include <queue>

using namespace std;

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

long long int n, l, u, a, nrdist, cnt;
unordered_map<int, int> umap;
deque<int> deq;

int main()
{
    fin>>n>>l>>u;

    for(int i = 1; i <= n; i++)
    {
        fin>>a;
        deq.push_back(a);
        int re = ++umap[a];
        if(re == 1)
            nrdist++;
        // cout<<a<<" "<<nrdist<<endl;

        while(nrdist > u)
        {
            int re = --umap[deq.front()];
            deq.pop_front();
            if(re == 0)
                nrdist --;
        }

        if(nrdist >= l && nrdist <= u)
            cnt++;
    }
    cnt += deq.size();
    fout<<cnt;
}