Cod sursa(job #2608794)

Utilizator vlad414141414141Vlad Ionescu vlad414141414141 Data 1 mai 2020 19:21:19
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 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;
vector <unsigned int> v;

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

int solve(int x)
{
    int 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;
        if (indj<n)
            indj++;
    }
    return nr;
}

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