Cod sursa(job #3356513)

Utilizator natalia_denisa14Natalia natalia_denisa14 Data 2 iunie 2026 09:40:27
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;

ifstream f("secv5.in");
ofstream g("secv5.out");

int n,l,u,cnt=1;
vector<int> arr;
unordered_map<int,int> id;
long long cauta_secventa(int x) {
    unordered_map<int,int> frecv;
    int dist_cnt=0;
    long long final_ans=0;
    int st=0;
    for (int i=0;i<n; i++) {
       // cout<<final_ans<<" ";
        if (!frecv[arr[i]]) dist_cnt++;
        frecv[arr[i]]++;

        while (dist_cnt>=x && st<=i) {
            final_ans+=(n-i);
            frecv[arr[st]]--;
            if (frecv[arr[st]]==0) dist_cnt--;
            st++;  i++;
        }
    }
    return final_ans;
}
int main() {
    f>>n>>l>>u;
    arr.resize(n);
    for(int i=0;i<n;i++) {
        f>>arr[i];
        if (!id[arr[i]]) id[arr[i]]=cnt++;
        arr[i]=id[arr[i]];
    }

    g<<cauta_secventa(l)-cauta_secventa(u+1);
}