Cod sursa(job #628462)

Utilizator scutaru.georgianGeorgian scutaru.georgian Data 1 noiembrie 2011 14:33:19
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream.h>
#include<iostream.h>
int i,j,n,k,a[20],p[20],L[20];
ifstream f("pd.in");
void cit()
{f>>n;
 for(i=1;i<=n;i++) f>>a[i];
 f.close();
}
void dinam()
{L[n]=1; p[n]=n;
 for(i=n-1;i>=1;i--)
	{L[i]=1; p[i]=i;
     for(j=i+1;j<=n;j++)
		if(a[i]<=a[j] && L[i]<=L[j])
			{L[i]=L[j]+1; p[i]=j;}}
}
void cauta()
{int max=-1;
 for(i=1;i<=n;i++)
	if(max<L[i]) {max=L[i]; k=1;}
}
void afiseaza()
{cout<<"Lungime subsir= "<<L[k]<<'\n';
 int poz=1;
for(i=2;i<=n;i++)
	if(L[poz]<L[i]) poz=i;
cout<<"Pozitia:"<<poz<<'\n';
 for(i=1,j=k;i<=L[k];i++,j=p[j]) cout<<a[j]<<' ';
}
int main()
{cit();
 dinam();
 cauta();
 afiseaza();
 return 0;
}