Cod sursa(job #1573794)

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

using namespace  std;

vector <long long> V;

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

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

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

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

		s += i - nr + 1;
	}

	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){
		int x;
		f >> x;
		V.push_back(x);
	}

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

	g << s;

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

	return 0;
}