Cod sursa(job #1539122)

Utilizator tamionvTamio Vesa Nakajima tamionv Data 30 noiembrie 2015 12:03:52
Problema Secventa 5 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;

int count_nr_shorter(const vector<unsigned int>& v, const int len){
	int rez = 0;
	unordered_map<unsigned int, int> nr_ap;
	for(int dr = 0, st = 0; dr < v.size(); ++dr){
		++nr_ap[v[dr]];
		while(nr_ap.size() > len){
			--nr_ap[v[st]];
			if(nr_ap[v[st]] == 0){
				nr_ap.erase(v[st]); }
			++st; }
		rez += dr-st+1; }
	return rez; }

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

	int n, l, u;
	f >> n >> l >> u;

	vector<unsigned int> v(n);
	for(auto& x : v){
		f >> x; }

	g << count_nr_shorter(v, u) - count_nr_shorter(v, l-1);
	return 0; }