Cod sursa(job #1135668)

Utilizator daianapeterPeter Daiana daianapeter Data 8 martie 2014 11:13:38
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
	int a[100],n,i,l[1000],max=0,poz[1000],j;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
	cin>>n;
	for(i=1;i<=n;++i)
		{
		cin>>a[i];
		l[i]=1;
		poz[i]=-1;
	}
	
		
		for(i=n;i>=1;i--)
		for(j=n;j>i;j--)
		if(a[i]<a[j]&& l[i]<l[j]+1)
			{
				l[i]=l[j]+1;
				poz[i]=j;
			}
	//l[i]= lungimea celui mai lung subsir crescator care incepe incepe de la pozitia i
	//poz[i] - pozitia urmatorului element in subsirul crescator 
	
	// afisez lungimea celui mai lung subsir
	
	// maximul elementelor din vectorul l
	
	int maxim=-1,start;
	for(i=1;i<=n;i++) 
	    if (maxim<l[i])
		  {
		  		  maxim=l[i];
		  indice=i;
	}
	
	// afisez scm
			cout<<maxim<<endl;
			
	while (indice!=-1)
	{ cout<<a[indice]<<" ";
	 indice=poz[indice];
	 	}
	
		

	
	
	
	
	return 0;
}