Cod sursa(job #2608807)

Utilizator vlad414141414141Vlad Ionescu vlad414141414141 Data 1 mai 2020 19:28:50
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <unordered_map>

using namespace std;

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

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

void read()
{
    fin >> n >> l >> u;
    for (int i=0;i<n;++i)
    {
        fin >> v[i];
    }
}

long long solve(int x)
{
    long long indi=0, indj=0, c=0, nr=0;
    unordered_map <unsigned int, int> m;
    while (indj<n)
    {
        if (m[v[indj]]==0)
            c++;
        m[v[indj]]++;
        while (c>x)
        {
            m[v[indi]]--;
            if (m[v[indi]]==0)
            {
                c--;
            }
                indi++;
        }
        if (c<=x)
            nr+=indj-indi+1;
        indj++;
    }
    return nr;
}

int main()
{
    read();
    fout << solve(u)-solve(l-1);
    return 0;
}