Cod sursa(job #719308)

Utilizator lucian666Vasilut Lucian lucian666 Data 21 martie 2012 18:30:39
Problema Subsir 2 Scor 36
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
using namespace std;
#define NN 5001
ofstream out("subsir2.out");
double v[NN];
int l[NN],next[NN],n;
void citire();
void afis();
void dinamic();
int main()
{
	citire();
	dinamic();
	afis();
	return 0;
}
void citire()
{
	ifstream in("subsir2.in");
	in>>n;
	for(int i=1;i<=n;i++)
		in>>v[i];
}
void dinamic()
{
	int i,j;
	l[n]=1;
	next[1]=-1;
	for(i=n-1;i>=1;i--)
	{
		l[i]=1;
		next[i]=-1;
			for(j=i+1;j<=n;j++)
				if(v[i]<v[j])
					if(l[i]<l[j]+1)
					{
						l[i]=l[j]+1;
						next[i]=j;
					}
	}
}
void afis()
{
	int i,start=1;
	for(i=1;i<=n;i++)
		if(l[start]<l[i])
			start=i;
		out<<l[start]<<" "<<'\n';
		for(i=start;i!=-1;i=next[i])
			out<<i<<" ";
}