Cod sursa(job #1266901)

Utilizator vladrochianVlad Rochian vladrochian Data 19 noiembrie 2014 11:40:16
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#include <unordered_map>
using namespace std;

const int kMaxN = 1050000;

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

int N, L, U, v[kMaxN];
unordered_map<int, int> ap;

int Count(size_t lim) {
	ap.clear();
	int sol = 0, st = 1;
	for (int i = 1; i <= N; ++i) {
		++ap[v[i]];
		while (ap.size() > lim) {
			--ap[v[st]];
			if (!ap[v[st]])
				ap.erase(v[st]);
			++st;
		}
		sol += i - st + 1;
	}
	return sol;
}

int main() {
	fin >> N >> L >> U;
	for (int i = 1; i <= N; ++i)
		fin >> v[i];
	fout << Count(U) - Count(L - 1) << "\n";
	return 0;
}