Cod sursa(job #1573932)

Utilizator Vladut-Vlad Panait Vladut- Data 20 ianuarie 2016 00:26:00
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#include <unordered_map>
#define MAXN 1<<20 + 5

using namespace std;

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

int n, l, u, v[MAXN];
unordered_map<unsigned int, int> myMap;

int subsecv(int x)
{
	myMap.clear();
	int j = 1;
	int sol = 0;
	for (int i = 1; i <= n; i++)
	{
		myMap[v[i]]++;
		while (myMap.size() > x)
		{
			myMap[v[j]]--;
			if (!myMap[v[j]])
			{
				myMap.erase(v[j]);
			}
			j++;
			
		}
		sol += i - j + 1;
	
	}
	return sol;
}

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

	for (int i = 1; i <= n; i++)
	{
		fin >> v[i];
	}
	fout << subsecv(u) - subsecv(l - 1);

	return 0;
}