Cod sursa(job #216005)

Utilizator SheepBOYFelix Liviu SheepBOY Data 21 octombrie 2008 23:58:49
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#define sz 2<<20
//#include<vector>
//using namespace std;  
//vector<bool> s(2<<30,false);
#include<stdio.h>
int n,v,lv,nr,app[sz],stk[sz];
int see(int k)
{
	for(int i=0;i<nr;i++)
		if(k==stk[i])
			return 1;
		return 0;
}
int main()
{
	int i,l,u,last,ilast,nr;
	l=u=0;
	freopen("secv5.in","r",stdin);
	freopen("secv5.out","w",stdout);
	last=ilast=0;
	scanf("%d %d %d %d",&n,&l,&u,&lv);
	app[0]=1;
	int sum=0;
	nr=0;
	stk[nr]=lv;
	nr++;
	for(i=1;i<n;i++)
	{
		scanf("%d",&v);
		if(v!=lv&&!see(v))	
			app[i]=app[i-1]+1;
		else
			app[i]=app[i-1];
	
	stk[nr]=v;
	nr++;
	
	lv=v;
	if(app[i]>=l&&app[i]<=u)
		{
			if(!last)
				{last=n-(n-i);ilast=1;}
			else
				if(i-ilast>=l&&i-ilast<u){last++;ilast=i;}
		sum+=last;
		}
	}
	printf("%d",sum);
}