Cod sursa(job #215992)

Utilizator SheepBOYFelix Liviu SheepBOY Data 21 octombrie 2008 23:30:44
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#define sz 2<<20
#define sx 2<<32-1
#include<vector>
using namespace std;  
vector<bool> s(sx,false);
#include<stdio.h>
long long n,v[sz],app[sz];
int main()
{
	long long i,l,u,last,ilast;
	l=u=0;
	freopen("secv5.in","r",stdin);
	freopen("secv5.out","w",stdout);
	last=ilast=0;
	scanf("%lld %lld %lld %lld",&n,&l,&u,v);
	app[0]=1;
	int sum=0;
	for(i=1;i<n;i++)
	{
		scanf("%lld",v+i);
		if(v[i]!=v[i-1]&&!s[v[i]])
			app[i]=app[i-1]+1;
		else
			app[i]=app[i-1];
	s[v[i]]=true;
	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);
}