Cod sursa(job #2662456)

Utilizator tomaionutIDorando tomaionut Data 24 octombrie 2020 09:56:36
Problema Secventa 5 Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
unsigned int a[1100000],n;
unordered_map <unsigned int,int> M;
long long Solve(unsigned int x)
{
    int p=1;
    long long sol=0;
    for (int i=1; i<=n; i++)
    {
        M[a[i]]++;
        while (M.size()>x)
        {
            M[a[p]]--;
            if (M[a[p]]==0) M.erase(a[p]);
            p++;
        }
        sol+=(i-p+1);
    }
    M.clear();
    return sol;
}
int main()
{
    int l,u,i;
    fin >> n >> l >> u;
    for (i=1; i<=n; i++)
    fin >> a[i];
    fout << (Solve(u)-Solve(l-1)) << "\n";



    return 0;
}