Cod sursa(job #3032330)

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

#define int long long

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

const int N = 1050000;

int n;
int v[N + 5];

int ceva(int a) {
	unordered_map<int, int> f;
	int ans = 0;
	int cnt = 0;
	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;
}

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