Cod sursa(job #26728)

Utilizator ionescu_bogdanIonescu Bogdan-Gabriel ionescu_bogdan Data 5 martie 2007 20:49:05
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include <stdio.h>

#define nmax 1<<20

int a[nmax],n,i,st,en,l,u,sol,ns;
int b[nmax];

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

	scanf("%d%d%d",&n,&l,&u);
	for (i=0;i<n;i++)
		scanf("%d",a+i);
	for (en=0;en<n;en++)
	{
		if (b[a[en]])
			++ns;
		++b[a[en]];
		while ((en-st+1>u)||(ns))
		{
			if (b[a[st]]>1)
				--ns;
			b[a[st]]--;
			++st;
		}
		if (en-st+1>=l)
			sol+=en-st-l+2;
	}
	printf("%d\n",sol);

	return 0;
}