Cod sursa(job #488710)

Utilizator Robert29FMI Tilica Robert Robert29 Data 29 septembrie 2010 19:33:47
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>
FILE*f=fopen("scmax.in","r");
FILE*g=fopen("scmax.out","w");
int n,i,v[100001],j,max,max1,z,m[100001],x[100001];
int main() {
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&v[i]);
	m[1]=1;
	max1=1;
	for(i=2;i<=n;i++){
		max=0;
		for(j=1;j<i;j++)
			if(m[j]>max&&v[j]<v[i]){
				max=m[j];
				x[i]=j;
			}
		m[i]=max+1;
		if(m[i]>max1){
			max1=m[i];
			z=i;
		}
	}		
	fprintf(g,"%d\n",max1);
	i=z;
	j=1;
	m[1]=v[i];
	while(x[i]!=0){
		m[++j]=v[x[i]];
		i=x[i];
	}
	for(i=j;i>0;i--)
		fprintf(g,"%d ",m[i]);
	fclose(g);
	fclose(f);
	return 0;
}