Cod sursa(job #857990)

Utilizator Marius96Marius Gavrilescu Marius96 Data 18 ianuarie 2013 14:28:45
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda ichb-locala-2013-10 Marime 0.64 kb
//brut

#include<cstdio>
#include<cstring>

int v[1050000];
int c[1050000];

int main()
{
	freopen ("secv5.in","r",stdin);
#ifdef INFOARENA
	freopen ("secv5.out","w",stdout);
#endif

	int a,b,n;
	scanf ("%d%d%d",&n,&a,&b);

	for(int i=0;i<n;i++)
		scanf ("%d",v+i);

	//normalize

	int ret=0;

	for(int l=1;l<=n;l++){
		memset (c,0,sizeof c);

		int cnt=0;
		for(int i=0;i<l;i++){
			c[v[i]]++;
			if(c[v[i]]==1)
				cnt++;
		}

		if(cnt>=a&&cnt<=b)
			ret++;

		for(int i=l;i<n;i++){
			c[v[i]]++;
			if(c[v[i]]==1)
				cnt++;

			c[v[i-l]]--;
			if(c[v[i-l]]==0)
				cnt--;

			if(cnt>=a&&cnt<=b)
				ret++;
		}
	}

	printf ("%d",ret);
	return 0;
}