Cod sursa(job #2957534)

Utilizator lucriLuchian Cristian lucri Data 22 decembrie 2022 19:22:30
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>
std::ifstream cin("secv5.in");
std::ofstream cout("secv5.out");
std::unordered_map<long long,long long>f;
long long n,u,l,v[2000010];
long long raspunde(long long a)
{
    f.clear();
    long long ans=0;
    long long b=1,ff=0;
    for(long long e=1;e<=n;++e)
    {
        ++f[v[e]];
        if(f[v[e]]==1)
            ++ff;
        while(ff>a&&b<=e)
        {
            --f[v[b]];
            if(f[v[b++]]==0)
                --ff;
        }
        ans+=e-b+1;
    }
    return ans;
}
int main()
{
    cin>>n>>u>>l;
    for(long long i=1;i<=n;++i)
        cin>>v[i];
    long long z=raspunde(l),zz=raspunde(u-1);
    cout<<z-zz;
    return 0;
}