Cod sursa(job #3274467)

Utilizator apoputoaievladVlad Cristian Apoputoaie apoputoaievlad Data 6 februarie 2025 21:14:54
Problema Secventa 5 Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,l,u;
long long v1,v2;
unsigned int a[1050000];
map <unsigned int, int> m;

int main()
{
    int i,st,dr,nr=0;
    fin>>n>>l>>u;
    for(i=1;i<=n;i++)
        fin>>a[i];
    st=dr=1;
    while(dr<=n)
    {
        if(m[a[dr]]==0)
            nr++;
        m[a[dr]]++;
        while(u<nr)
        {
            if(m[a[st]]==1)
                nr--;
            m[a[st]]--;
            st++;
        }
        v1+=(dr-st+1);
        dr++;
    }
    l--;
    m.clear();
    nr=0;
    st=dr=1;
    while(dr<=n)
    {
        if(m[a[dr]]==0)
            nr++;
        m[a[dr]]++;
        while(l<nr)
        {
            if(m[a[st]]==1)
                nr--;
            m[a[st]]--;
            st++;
        }
        v2+=(dr-st+1);
        dr++;
    }
    fout<<v1-v2<<"\n";
    return 0;
}