Cod sursa(job #190192)

Utilizator maria_pparcalabescu maria daniela maria_p Data 20 mai 2008 16:58:20
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<cstdio>
#define L 100010
struct point{
	long x;
	point *leg;
}*l[L],*p;
long a[L],n,nr,lung[L],i,j,ok,max;
int main(){
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	scanf("%ld",&n);
	for(i=0;i<n;i++)
		scanf("%ld",&a[i]);
	nr=0;
	for(i=0;i<n;i++){
		ok=-1;max=0;
		for(j=0;j<nr;j++)
			if(a[i]>l[j]->x)
				if(lung[j]>max){
					max=lung[j];
					ok=j;
				}
		if(ok==-1){
			nr++;
			l[nr-1]=new point;
			l[nr-1]->x=a[i];
			l[nr-1]->leg=0;
			lung[nr-1]=1;
		}
		else{
			p=new point;
			p->x=a[i];
			p->leg=l[ok];
			l[ok]=p;
			lung[ok]++;
		}
	}
	max=lung[0];
	for(i=1;i<nr;i++)
		if(lung[i]>max)max=lung[i];
	printf("%ld\n",max);
	fclose(stdin);
	fclose(stdout);
	return 0;
}