Cod sursa(job #3032329)

Utilizator WladDalwMvladutu cristian vlad WladDalwM Data 21 martie 2023 22:21:25
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;

#define int long long

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

const int N = 1050000;

int n;
int v[N + 5];

int ceva(int a) {
    unordered_map<int, int> f;
    int ans = 0;
    int cnt = 0;
    int l = 1, r;
    for(r = 1; r <= n; ++ r) {
        if(f[v[r]] == 0)
            cnt++;
        f[v[r]] ++;
        while(cnt > a && l <= r) {
            f[v[l]] --;
            if(f[v[l]] == 0)
                cnt --;
            l ++;
        }
        ans += r - l + 1;
    }
    return ans;
}

int32_t main() {
    int l, u;
    in >> n >> l >> u;
    for(int i = 1; i <= n; ++ i) {
        in >> v[i];
    }
    out << ceva(u) - ceva(l - 1);
    return 0;
}