Cod sursa(job #2990401)

Utilizator WladDalwMvladutu cristian vlad WladDalwM Data 7 martie 2023 21:03:20
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;

ifstream in("secv5.in");
ofstream out("secv5.out");

unordered_map<unsigned int, unsigned int> f;
const unsigned int N = 1050000;

unsigned int n;
unsigned int v[N + 5];

int ceva(int a) {
	unsigned int ans = 0;
	unsigned int cnt = 0;
	unsigned int l = 1, r;
	for(r = 1; r <= n; ++ r) {
		if(f[v[r]] == 0)
			cnt++;
		f[v[r]] ++;
		while(cnt > a && l <= r) {
			f[v[l]] --;
			if(f[v[l]] == 0)
				cnt --;
			l ++;
		}
		ans += r - l + 1;
	}
	return ans;
}

int main() {
	unsigned int l, u;
	in >> n >> l >> u;
	for(unsigned int i = 1; i <= n; ++ i) {
		in >> v[i];
	}
	out << ceva(u) - ceva(l - 1);
	return 0;
}