Cod sursa(job #3153858)

Utilizator suimerchantsui merchant suimerchant Data 1 octombrie 2023 17:11:48
Problema Ratphu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;


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


int n,l,u;
unsigned long v[1048580];


void read()
{
    fin>>n>>l>>u;
    for(int i=1;i<=n;i++) fin>>v[i];
}


long long solve(int x)
{
    long long sol=0;
    unordered_map <long long ,int> fr;
    int cnt=0;
    int st=1;
    for (int i=1; i<=n; i++)
    {
        int dr=i;
        fr[v[i]]++;
        if (fr[v[i]]==1) cnt++;
        while (cnt>x)
        {
            fr[v[st]]--;
            if (fr[v[st]]==0)cnt--;
            st++;
        }
        sol+=(dr-st+1);
    }
    fr.clear ();
    return sol;
}


int main()
{
    read();
    if(l==1)
    {
        fout<<solve(u);
        return 0;
    }
    long long s1=solve(l-1);
    long long s2=solve(u);
    fout<<s2-s1;
    return 0;
}