Cod sursa(job #900312)

Utilizator taigi100Cazacu Robert taigi100 Data 28 februarie 2013 19:01:26
Problema Subsir crescator maximal Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<stdio.h>
int v[100005],best[100005],poz[100005],aux[100005];
int main()
{
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	int n,max=1,maxl;
	scanf("%d",&n);
	scanf("%d",&v[1]);
	best[1]=1;
	poz[1]=1;
	for(int i=2;i<=n;i++)
	{
		scanf("%d",&v[i]);
		if(v[i]>v[i-1])
		{
			best[i]+=best[i-1]+1;
			poz[i]=i-1;
			if(best[i]>max)
			{
				max=best[i];
				maxl=i;
			}
		}
		else
		{
			best[i]=max;
			poz[i]=poz[i-1];
		}
	}
	printf("%d\n",max);
	int nr=0;
	for(int i=maxl;poz[i]!=i;i=poz[i])
	{
		aux[++nr]=v[i];
	}
	for(int i=nr;i>=1;i--)
		printf("%d ",aux[i]);
}