Cod sursa(job #3275448)

Utilizator Stefanstef99Stefan Puica Stefanstef99 Data 10 februarie 2025 17:42:00
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,l,u;
unsigned int a[1050000];
unordered_map <unsigned int,int> m;

/// returneaza nr de secv care au cel mult x elemente distincte
long long F(int x)
{
    int i,j,nr;
    long long cnt;
    j=1;cnt=nr=0;
    m.clear();
    for(i=1;i<=n;i++)
    {
        m[a[i]]++;
        if(m[a[i]]==1) nr++;
        while(nr>x)
        {
            m[a[j]]--;
            if(m[a[j]]==0) nr--;
            j++;
        }
        cnt+=(i-j+1);
    }
    return cnt;
}

int main()
{
    int i;
    fin>>n>>l>>u;
    for(i=1;i<=n;i++)
        fin>>a[i];
    fout<<F(u)-F(l-1)<<'\n';
    return 0;
}