Cod sursa(job #213048)

Utilizator tudalexTudorica Constantin Alexandru tudalex Data 8 octombrie 2008 13:52:28
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
#include <map>
using namespace std;
map <int, int> m;
const int n_max = 1<<20;
int dist, sol, i, n, p, u, l;
int a[n_max];
int main()
{
	freopen("secv5.in","r",stdin);
	freopen("secv5.out","w",stdout);
	scanf("%d %d %d", &n, &l, &u);
	for (i =1; i<= n; ++ i)
		scanf("%d", &a[i]);
	p = 0;
	for (i = 1; i <=n; ++ i)
	{
		++m[a[i]];
		if (m[a[i]] == 1)
			++dist;
		while (dist > u)
		{
			--m[a[++p]];
			if (m[a[p]] == 0)
				--dist;
			++sol;
		}
		if (dist >=l && dist <=u)
			++sol;
	}
	printf("%d\n", sol);
	return 0;
}