Cod sursa(job #3285912)

Utilizator tudorr1Becleanu Tudor Andrei tudorr1 Data 13 martie 2025 15:59:15
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<bits/stdc++.h>
using namespace std;
//#define in cin
//#define out cout
#define int long long
ifstream in("secv5.in");
ofstream out("secv5.out");
int a[(1<<20)+1],n,L,U,dif;
unordered_map<int,int> f;
void dist(int a){
    if(f[a]==0) dif++;
    f[a]++;
}
void redist(int a){
    if(f[a]==1) dif--;
    f[a]--;
}
int rez(int x){
    int l,r,ans;
    dif=ans=0;
    l=r=1;
    f.clear();
    while(r<=n){
        dist(a[r]);
        while(dif>x){
            redist(a[l]);
            l++;
        }
        if(l>r) r=l;
        else r++;
        ans+=r-l;
    }
    return ans;
}
int32_t main(){
    in>>n>>L>>U;
    for(int i=1;i<=n;i++) in>>a[i];
    out<<rez(U)-rez(L-1);
}