Cod sursa(job #3196032)

Utilizator rosca.crisRosca Cristian rosca.cris Data 22 ianuarie 2024 15:27:00
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; long long ans = 0, cnt = 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;
    }
    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;
}