Cod sursa(job #595129)

Utilizator CS-meStanca Marian Ciprian CS-me Data 11 iunie 2011 11:47:38
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>
FILE *fin=fopen("scmax.in","r");
FILE *fout=fopen("scmax.out","w");
int l[100001], t[100001],n,i,j,poz,max,maxim,pozmax,v[100001];

void drum(int p){
	if(p){
		//fprintf(fout,"%d ",v[p]);
		drum(t[p]);
		fprintf(fout,"%d ",v[p]);
	}
	else fprintf(fout,"%d\n",maxim);
	
}



int main(){

	fscanf(fin,"%d",&n);
	
	for(i=1;i<=n;i++){
		fscanf(fin,"%d",&v[i]);
	}
	
	for(i=1;i<=n;i++){
		max=0;
		poz=0;
		for(j=1;j<=i-1;j++){
			if(l[j]>max && v[i]>v[j]){
				max=l[j];
				poz=j;
			}
		}
		l[i]=max+1;
		if(maxim<l[i]){
			maxim=l[i];
			pozmax=i;
		}
		t[i]=poz;
	}
	
	//fprintf(fout,"%d",maxim);
	
	drum(pozmax);
	
return 0;
}