Cod sursa(job #3274464)

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

using namespace std;

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

int n,l,u;
unsigned 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=1;
    for(dr=1;dr<=n;dr++)
    {
        if(m[a[dr]]==0)
            nr++;
        m[a[dr]]++;
        while(u<nr)
        {
            if(m[a[st]]==1)
                nr--;
            m[a[st]]--;
            st++;
        }
        v1+=dr+1-st;
    }
    l--;
    m.clear();
    nr=0;
    st=1;
    for(dr=1;dr<=n;dr++)
    {
        if(m[a[dr]]==0)
            nr++;
        m[a[dr]]++;
        while(l<nr)
        {
            if(m[a[st]]==1)
                nr--;
            m[a[st]]--;
            st++;
        }
        v2+=dr+1-st;
        //cout<<st<<" "<<dr<<" "<<v2<<"\n";
    }
    fout<<v1-v2<<"\n";
    return 0;
}