Cod sursa(job #3268134)

Utilizator Barbu_MateiBarbu Matei Barbu_Matei Data 13 ianuarie 2025 18:38:35
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;

int n, l, u;
unsigned int v[2000001];

long long sum(long long k) {
    return k * (k + 1) / 2;
}

long long calcSeq(int len) {
    int st = 1;
    long long sol = 0;
    unordered_map<unsigned int, int> mt;
    for (int dr = 1; dr <= n; ++dr) {
        ++mt[v[dr]];
        while (mt.size() > len) {
            --mt[v[st]];
            if (mt[v[st]] == 0) {
                mt.erase(v[st]);
            }
            ++st;
        }
        sol += dr - st + 1;
    }
    return sol;
}

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