Cod sursa(job #3133069)

Utilizator Mihai780Mihai Neagoe Mihai780 Data 25 mai 2023 01:33:40
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <unordered_map>
#include <iostream>
#include <fstream>
using namespace std ;
ifstream fin("secv5.in") ;
ofstream fout("secv5.out") ;
long long v[10000000],n,l,r ;
long long f(long long val)
{
    unordered_map <long long,long long> m ;
    long long ans=0,cnt=0,st=1;
    for(long long 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(long long i=1; i<=n; ++i) fin>>v[i] ;
    fout<<f(r)-f(l-1) ;
    return 0 ;
}