Cod sursa(job #3285895)

Utilizator tudorr1Becleanu Tudor Andrei tudorr1 Data 13 martie 2025 15:49:50
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<bits/stdc++.h>
using namespace std;
//#define in cin
//#define out cout
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;
    l=r=dif=ans=0;
    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;
}
int main(){
    in>>n>>L>>U;
    for(int i=1;i<=n;i++) in>>a[i];
    out<<rez(U)-rez(L-1);
}