Cod sursa(job #3276184)

Utilizator Tudor_CCTudor Cocu Tudor_CC Data 12 februarie 2025 20:57:44
Problema Secventa 5 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <bits/stdc++.h>

using namespace std;

int v[2000005];

unordered_map<long long,int> f;

int main()
{
    ifstream cin("secv5.in");
    ofstream cout("secv5.out");
    int n,a,b;
    cin>>n>>a>>b;
    for(int i=1;i<=n;++i)
    {
        cin>>v[i];
    }
    long long int c1=0,c2=0;
    int nr=0;
    int j=1;
    for(int i=1;i<=n;++i)
    {
        f[v[i]]++;
        if(f[v[i]]==1)
        {
            ++nr;
        }
        while(nr>b)
        {
            f[v[j]]--;
            if(f[v[j]]==0)
            {
                --nr;
            }
            ++j;
        }
        c1=c1+i-j+1;
    }
    nr=0;
    f.clear();
    j=1;
    --a;
    for(int i=1;i<=n;++i)
    {
        f[v[i]]++;
        if(f[v[i]]==1)
        {
            ++nr;
        }
        while(nr>a)
        {
            f[v[j]]--;
            if(f[v[j]]==0)
            {
                --nr;
            }
            ++j;
        }
        c2=c2+i-j+1;
    }
    cout<<c1-c2;
    return 0;
}