Cod sursa(job #1112043)

Utilizator santoriniPanea Catalin santorini Data 19 februarie 2014 13:00:06
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>
using namespace std;
FILE *f=fopen("scmax.in","r");
FILE *g=fopen("scmax.out","w");
int n,v[100001],i,j,l[100001],lmax,lpoz,k,ok;
int main()
{
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&v[i]);
	l[n]=1;
	lmax=1;
	lpoz=n;
	for(i=n-1;i>=1;i--)
	{   
		ok=0;
		l[i]=1;
		for(j=i+1;j<=n&&!ok;j++)
		{
			if(v[j]>v[i])
			{
				l[i]=l[j]+1;
				ok=1;
			}
		}
		if(l[i]>lmax)
		{
			lmax=l[i];
			lpoz=i;
		}
	}
	fprintf(g,"%d\n%d ",lmax,v[lpoz]);
	k=lmax;
	i=lpoz;
	while(i<=n&&k>0)
	{
		j=i+1;
		ok=0;
		while(j<=n&&!ok)
		{
			if(v[j]>v[i]&&l[j]==k-1)
			{
				ok=1;
				k--;
				fprintf(g,"%d ",v[j]);
			}
			j++;
		}
		i++;
	}
	fclose(f);
	fclose(g);
	return 0;
}