Cod sursa(job #2957536)

Utilizator lucriLuchian Cristian lucri Data 22 decembrie 2022 19:24:16
Problema Secventa 5 Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
std::ifstream cin("secv5.in");
std::ofstream cout("secv5.out");
std::unordered_map<unsigned int,unsigned int>f;
unsigned int n,u,l,v[1048577];
long long raspunde(unsigned int a)
{
    f.clear();
    unsigned int ans=0;
    unsigned int b=1,ff=0;
    for(unsigned int 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(unsigned int i=1;i<=n;++i)
        cin>>v[i];
    long long z=raspunde(l),zz=raspunde(u-1);
    cout<<z-zz;
    return 0;
}