Cod sursa(job #457743)

Utilizator ncbllrNegrii Costin ncbllr Data 21 mai 2010 13:22:33
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<iostream.h>
#define maxn 100010

int n,v[ maxn],a[ maxn ],last[ maxn ],poz;
int sol[ maxn ];


int main()
 
{
	int max;
	freopen("scmax.in", "r", stdin);
	freopen("scmax.out", "w", stdout);
	
	scanf("%d", &n);
	for(int i = 1; i <= n; i++)
	{
		scanf("%d", &v[i]);
		a[i]++;
	}
	for(int  i=1 ;i <= n; i++)
		for(int j= i + 1 ;j<=n; j++)
		{
			if(v[i] < v[j] && a[ i ] + 1 > a[ j ]) 
				{
					a[ j ] = a[ i ] + 1;
					last[j]=i;
			    }					
			if( a[ j ] > max)
				{
					max = a[j];
			        poz=j;
		    	}	
			
        }
	printf("%d\n", max);
	int i=1,j;
	return 0;
	int nr = max;
	while( poz )
	    {   
			sol[ nr-- ] = poz;
			poz = last[ poz ];
		}	
	for(int i=1;i<=max;i++)
        printf("%d ", v[ sol[ i ]]);		
	printf("\n");
	return 0;
	
}