Cod sursa(job #3196028)

Utilizator rosca.crisRosca Cristian rosca.cris Data 22 ianuarie 2024 15:19:25
Problema Secventa 5 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;

#define cin fin
#define cout fout

ifstream fin("secv5.in");
ofstream fout("secv5.out");

int n, x, y;
vector <int> v;
    
long long sub(int k){
    unordered_map <int, int> m;
    int l = 1, cnt = 0; long long ans = 0;
    for(int r = 1; r <= n; ++r){
        if(++m[v[r]] == 1){
            ++cnt;
            while(cnt > k){
                if(--m[v[l]] == 0){
                    --cnt;
                }
                ++l;
            }
        }
        ans += r - l + 1;
    }
    return ans;
}

int main(){
    cin >> n >> x >> y;
    v.resize(n + 1);
    for(int i = 1; i <= n; ++i){
        cin >> v[i];
    }
    cout << sub(y) - sub(x - 1);
    return 0;
}