Cod sursa(job #3318822)

Utilizator adimiclaus15Miclaus Adrian Stefan adimiclaus15 Data 29 octombrie 2025 10:35:55
Problema Secventa 5 Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;

int n;
long long a[(1 << 20) + 1];

long long solve(int x) {
    if(x == 0) {
        return 0;
    }
    map<int, int> mp;
    int i = 1;
    int cnt = 0;
    long long sol = 0;
    for(int j = 1; j <= n; j++) {
        mp[a[j]]++;
        if(mp[a[j]] == 1) {
            cnt++;
        }
        while(cnt > x && i < j) {
            mp[a[i]]--;
            if(mp[a[i]] == 0) {
                cnt--;
            }
            i++;
        }
        sol += j - i + 1;
    }
    return sol;
}


int main() {
    ifstream cin("secv5.in");
    ofstream cout("secv5.out");
    int l, u;
    cin >> n >> l >> u;
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    cout << solve(u) - solve(l - 1);
    return 0;
}