Cod sursa(job #2647314)

Utilizator CONFUSION@@@@@ @@@ CONFUSION Data 3 septembrie 2020 21:16:15
Problema Secventa 5 Scor 80
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.67 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;
	
}