Pagini recente » Cod sursa (job #2944888) | Cod sursa (job #2556408) | Cod sursa (job #1213276) | Cod sursa (job #2498711) | Cod sursa (job #411571)
Cod sursa(job #411571)
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int i, j,l[100000],poz[100000],a[100000],n;
fin>>n;
for(i=0;i<n;i++) fin>>a[i];
l[n]=1; poz[n]=-1;
for (i=n-1; i>0; i--)
for (l[i]=1, poz[i]=-1, j=i+1; j<=n; j++)
if (a[i] <= a[j] && l[i]<1+l[j])
{
l[i]=1+l[j];
poz[i]=j;
}
//determin maximul din vectorul l
int max=l[1], pozmax=1;
for (int i=2; i<=n; i++)
if (max<l[i]) {max=l[i]; pozmax=i;}
fout<<"Lungimea celui mai lung subsir crescator: " <<max;
fout<<"\nCel mai lung subsir:\n";
for (i=pozmax; i!=-1; i=poz[i])
fout<<a[i]<<' ';
fin.close();
fout.close();
return 0;
}