Cod sursa(job #677968)

Utilizator Black_TigerSima Cristian Black_Tiger Data 10 februarie 2012 20:47:52
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<iostream>
#include<fstream>

using namespace std;

int a[100000];
	std::ofstream g ("data.out");
void drum(int n,int v[],int urm[]){
	if(urm[n]==-1)
		g<<v[n];
	else
	{ 
		g<<v[n]<<" ";
		drum(urm[n],v,urm);
		
	}
}

int main(){
	
	int v[100000],urm[100000],i,n,max,ml,j;
	ifstream f ("data.in");

	f>>n;
	
	for(i=1;i<=n;i++)
		f>>v[i];
	
a[n]=1;
	urm[n]=-1;
	max=0;
	int ind;
cout<<"v"<<" "<<"i"<<" "<<"a"<<" "<<"u"<<endl;
	for(i=n-1;i!=0;i--){
		urm[i]=-1;
		ml=0;
		for(j=i;j<=n;j++)
		{
			if(a[j]>ml && v[i]<v[j])
			{
				ml=a[j];
				urm[i]=j;
				
			}
		}
			ml++;	
		cout<<v[i]<<" "<<i<<" "<<ml<<" "<<urm[i]<<endl;

	a[i]=ml;
	
	if(ml>max)
		max=ml;
		ind=i+1;
	}
	
	g<<max<<endl;
	drum(ind,v,urm);
	
	return 0;
}