Cod sursa(job #628478)

Utilizator pettru294SimionPetru pettru294 Data 1 noiembrie 2011 14:53:15
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
#include<iostream>
using namespace std;
int i,j,n,k,a[20],p[20],L[20];
ifstream f("sir.in");
void cit()
{f>>n;
 for(i=1;i<=n;i++) f>>a[i];
 f.close();
 g.close();
}
void programare()
{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 este="<<poz<<';'<<'\n';
 for(i=1,j=k;i<=L[k];i++,j=p[j]) cout<<a[j]<<' ';
}
int main()
{cit();
 programare();
 cauta();
 afiseaza();
 return 0;
}