Cod sursa(job #3207326)

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

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

long long n,v[1100000];
long long rezolvare(int lun)
{
    unordered_map <long long,long long> fr;
    long long i=1,k=0,rez=0,j;
    for(j=1;j<=n;j++)
    {
        fr[v[j]]++;
        if(fr[v[j]]==1)
        {
            k++;
            while(k>lun)
            {
                fr[v[i]]--;
                if(fr[v[i]]==0)
                {
                    k--;
                    fr.erase(v[i]);
                }
                i++;
            }
        }
        rez+=(j-i);
    }
    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;
}