Cod sursa(job #3356515)

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

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

int n,l,u,cnt=1;
vector<long long> arr;
vector<int> arr_norm;
unordered_map<long long,int> id;
long long cauta_secventa(int x) {
    vector<int> frecv(cnt+1, 0);
    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_norm[i]]) dist_cnt++;
        frecv[arr_norm[i]]++;

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

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