Cod sursa(job #2420084)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 10 mai 2019 16:24:22
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <bits/stdc++.h>
#include <unordered_map>
using namespace std;
ifstream fin ("secv5.in");
ofstream fout ("secv5.out");
const int NMAX = (1 << 20) + 10;
int N, L, U;
int v [NMAX];
long long Solve (int k){
    unordered_map <unsigned int, int> mp;
	long long ans = 0;
	for (int i = 1, j = 1; j <= N; j ++){
		mp [v [j]] ++;
		while (mp.size () > k){
			mp [v [i]] --;
			if (mp [v [i]] == 0)
				mp.erase (v [i]);
			i ++;
		}
		ans = 1LL * ans + j - i + 1;
	}
	return ans;
}
int main (){
	fin >> N >> L >> U;
	for (int i = 1; i <= N; i ++)
		fin >> v [i];
	fout << Solve (U) - Solve (L - 1);
	return 0;
}