Cod sursa(job #1573961)

Utilizator danielmaxim95FMI Maxim Daniel danielmaxim95 Data 20 ianuarie 2016 01:17:30
Problema Secventa 5 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#include <unordered_map>

using namespace std;

int n, l, u;
unsigned int v[1048576];
unordered_map<unsigned int, unsigned int> h;

long long int secv5(int up)
{
	h.clear();
	long long int ret = 0, j = 0;
	for (int i = 0; i < n; i++)
	{
		h[v[i]]++;
		while (h.size() > up)
		{
			h[v[j]]--;
			if (!h[v[j]])
				h.erase(v[j]);
			j++;
		}
		ret += (i - j + 1);
	}
	return ret;
}

void citeste()
{
	ifstream f("secv5.in");
	f >> n >> l >> u;
	for (int i = 0; i < n; i++)
		f >> v[i];
	f.close();
}
int main()
{
	citeste();
	ofstream out("secv5.out");
	out << secv5(u) - secv5(l - 1);
	out.close();
}