Cod sursa(job #1573832)

Utilizator AlexandraaaaMereu Alexandra Alexandraaaa Data 19 ianuarie 2016 23:01:04
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <unordered_map>

using namespace  std;

unsigned int V[200000000];

long long NrSec(int k){
	unordered_map <unsigned int, int> H;
	long long s;
	int nr, d;
	s = nr = d = 0;

	for (int i = 0; i < V.size(); ++i){
		H[V[i]]++;
		nr++;

		if (H[V[i]] == 1)
			d++;

		while (d > k){
			if (H[V[i - nr + 1]] == 1)
				d--;
			H[V[i - nr + 1]]--;
			nr--;
		}

		s += nr;
	}

	return s;
}

int main(){
	ifstream f("secv5.in"); 
	ofstream g("secv5.out");

	int n, l, u;

	f >> n >> l >> u;
	for (int i = 0; i < n; ++i)
		f >> V[i];

	long long x, y;
	x = NrSec(u);
	y = NrSec(l - 1);

	g << x - y;

	f.close();
	g.close();

	return 0;
}