Cod sursa(job #3031154)

Utilizator DariusM17Murgoci Darius DariusM17 Data 18 martie 2023 21:35:49
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std ;
ifstream fin("secv5.in") ;
ofstream fout("secv5.out") ;
const int NMAX=(1LL<<20)+5 ;
int v[NMAX],n,l,r ;
unsigned int f(int val)
{
    unordered_map <int,int> m ;
    unsigned int ans=0,cnt=0,st=1;
    for(int i=1; i<=n; ++i)
    {
        if(m[v[i]]==0) cnt++ ;
        m[v[i]]++ ;
        while(cnt>val && st<=i)
        {
            m[v[st]]-- ;
            if(m[v[st]]==0) cnt-- ;
            st++ ;
        }
        ans+=i-st+1 ;
    }
    return ans;
}
int main()
{
    fin>>n>>l>>r ;
    for(int i=1; i<=n; ++i) fin>>v[i] ;
    fout<<f(r)-f(l-1) ;
    return 0 ;
}