Cod sursa(job #821189)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 21 noiembrie 2012 20:44:14
Problema Subsir crescator maximal Scor 70
Compilator c Status done
Runda Arhiva educationala Marime 0.71 kb
#include<stdio.h>

#define N 100007

int n,v[N],lung[N],pmax,rez[N],prev[N];

void citire()
{
	int max;
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	scanf("%d",&n);
	int i;
	for (i=1; i<=n; ++i)
	{
		scanf("%d",&v[i]);
		max=0;
		int j;
		for ( j=1;j<i; ++j)
			if (v[i]>v[j] && lung[j]>max) {
				max=lung[j];
				prev[i] = j;
			}
		lung[i]=1+max;
		if(lung[i]>lung[pmax])
			pmax=i;
	}
}

void sir(int i)
{
	if (prev[i])
        sir(prev[i]);
    printf("%d ",v[i]);
	/*while(i)
	{
		if(v[i]<v[pmax] && lung[i]==lung[pmax]-1)
		{
			rez[lung[i]]=v[i];
			pmax=i;
		}
		--i;
	}
	for(i=1;i<=aux;++i)
		printf("%d ",rez[i]);*/
}

int main()
{
	citire();
	printf("%d\n",lung[pmax]);
	sir(pmax);
	return 0;
}