Cod sursa(job #3185793)

Utilizator Gullit_Ivan Matei Gullit_ Data 20 decembrie 2023 14:06:37
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <algorithm>
#include <unordered_map>

using namespace std;
ifstream cin("secv5.in");
    ofstream cout("secv5.out");
long long v[2000000];
long long n,l, u,a;
long long cnt(int x)
{
    unordered_map<long long, int> f;
    long long i,j,nr,ans;
    i=j=nr=ans=0;
    while(j<n)
    {
        f[v[j]]++;
        if(f[v[j]]==1)
            nr++;
        j++;
        while(nr>x)
        {
            f[v[i]]--;
            if(f[v[i]]==0) nr--;
            i++;
        }
        ans+=j-i;
    }
    return ans;
}
int main()
{
    
    cin>>n>>l>>u;
    for(int i=0; i<n; i++)
    {
        cin>>v[i];
    }
    cout<<cnt(u)-cnt(l-1);

    return 0;
}