Cod sursa(job #9507)

Utilizator dfsdeckStefan Oprea dfsdeck Data 27 ianuarie 2007 15:56:15
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Unirea 2007, clasele 11-12 Marime 0.67 kb
#include <fstream.h>
#define _dim_u 5000000// 2 la 22 aprox
#define _dim_s 5000000//si a lui v e aprox 2 la 20
unsigned long e=0;
unsigned long u[_dim_u], s[_dim_s], v[_dim_s];
unsigned long N, L, U;
unsigned long *p = NULL;

int main()
{	unsigned long i, j;
	ifstream f("secv5.in");
	f>>N; f>>L; f>>U;
	for(i=1; i<=N; i++)
	{	v[i]=u[i]=0;
		f>>s[i];
	}
	u[0]=v[0]=0;
	for(i=N+1; i<=N+10; i++)
	{	v[i]=u[i]=0;
	}
	f.close();
	p= u +N +5;
	for(i=1; i<=N; i++)
	{	p--;
		for(j=1; j<=i; j++)
		{	if(j<= i - v[s[i]])
				p[j]++;
			if((p[j]>=L)&&(p[j]<=U))
				e++;
		}
		v[s[i]]=i;
	}
	
	ofstream g("secv5.out");
	g<<e<<"\n";
	g.close();
	return 0;
}