Pagini recente » Cod sursa (job #2816205) | Cod sursa (job #234077) | Cod sursa (job #2374090) | Cod sursa (job #1230845) | Cod sursa (job #1044631)
#include <iostream>
#include <fstream>
using namespace std;
const int LUNG=10000;
int a[LUNG],b[LUNG],p[LUNG],c[LUNG];
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int main()
{
int n,i,j,lmax=0,p1=0,poz;
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];
for(i=1;i<=n;i++)b[i]=1;
for(i=1;i<=n;i++)
{
for(j=1;j<i;j++)
if(a[j]<a[i] && b[i]<b[j]+1)
{
b[i]=b[j]+1;
if(b[i]>lmax)lmax=b[i];
p[i]=j;
poz=i;
}
}
while(poz>0)
{
c[++p1]=a[poz];
poz=p[poz];
}
fout<<lmax<<'\n';
for(i=p1;i>=1;i--)fout<<c[i]<<' ';
}