Mai intai trebuie sa te autentifici.

Cod sursa(job #1574265)

Utilizator tudoras8tudoras8 tudoras8 Data 20 ianuarie 2016 13:56:53
Problema Secventa 5 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <unordered_map>

using namespace std;

typedef long long ll;

const ll MAXN = 1 << 20 + 1;

int n, l, u;
int a[MAXN];

ll cntSeq(int k) {
    ll res = 0;

    int cnt = 0;
    int Li = 0;
    unordered_map<unsigned int, int> H;
    for (int i = 0; i < n; ++i) {
        ++H[a[i]];

        while (H.size() > k) {
            --H[a[Li]];

            if (H[a[Li]] == 0) {
                H.erase(a[Li]);
            }

            ++Li;
        }

        res += i - Li + 1;
    }

    return res;
}

int main()
{
    ifstream cin("secv5.in");
    ofstream cout("secv5.out");

    cin >> n >> l >> u;
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
    }

    cout << cntSeq(u) - cntSeq(l - 1);

    return 0;
}