Cod sursa(job #1566210)

Utilizator sherban26FMI Mateescu Serban-Corneliu sherban26 Data 11 ianuarie 2016 21:06:33
Problema Secventa 5 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>
#include <unordered_map>

using namespace std;

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

int n, l, u;
unsigned int v[1<<20 + 1];
unordered_map<unsigned int, int> h;

long long sec(int m)
{
	h.clear();
	long long indx = 1, rez = 0;
	for (int i = 1; i <= n; ++i)
	{
		h[v[i]]++;
		while (h.size() > m)
		{
			h[v[indx]]--;
			if (h[v[indx]] == 0)
				h.erase(v[indx]);
			indx++;
		}
		rez += i - indx + 1;
	}

	return rez;
}

int main()
{
	fin >> n >> l >> u;

	for (int i = 1; i <= n; ++i)
	{
		fin >> v[i];
	}

	fout << sec(u) - sec(l - 1);

	return 0;
}