Cod sursa(job #3207314)

Utilizator Cezar2009Cezar Mihai Titihazan Cezar2009 Data 25 februarie 2024 20:11:00
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
//https://www.infoarena.ro/problema/secv5
#include <bits/stdc++.h>
using namespace std;

ifstream fin("secv5.in");
ofstream fout("secv5.out");

int n,v[1100000];
int  rezolvare(int l)
{
    unordered_map <int,int> fr;
    int i=1,k=0,rez=0,j;
    for(j=1;j<=n;j++)
    {
        if(fr[v[j]]==0)
        {
            k++;
        }
        fr[v[j]]++;
        while(k>l)
        {
            fr[v[i]]--;
            if(fr[v[i]]==0)
            {
                k--;
                fr.erase(v[i]);
            }
            i++;
        }
        rez+=(j-i+1);
    }
    return rez;
}
int main()
{
    int l,u,i;
    fin>>n>>l>>u;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
    }
    fout<<rezolvare(u)-rezolvare(l-1);

    return 0;
}