Cod sursa(job #1284822)

Utilizator diana97Diana Ghinea diana97 Data 6 decembrie 2014 20:37:21
Problema Secventa 5 Scor 10
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = (1 << 20) + 1;

int n, l, u;
int v[NMAX];

void citeste() {
    f >> n >> l >> u;
    for (int i = 1; i <= n; i++) f >> v[i];
}

long long secvente(int x) {
    unordered_map <int, int> h;
    long long sol = 0;
    int j = 1;
    for (int i = 1; i <= n; i++) {
        h[v[i]]++;
        while((int)h.size() > x) {
            h[v[j]]--;
            if (h[v[j]] == 0) h.erase(v[j]);
            j++;
        }
        sol += (i - j + 1);
    }
    return sol;
}

int main() {
    citeste();
    g << secvente(u) - secvente(l - 1) << '\n';
    return 0;
}