Pagini recente » Cod sursa (job #2666718) | Cod sursa (job #286319) | Cod sursa (job #2899849) | Cod sursa (job #1855688) | Cod sursa (job #508469)
Cod sursa(job #508469)
#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;
int main()
{
long n,i,j,a[100001],b[100001][2],c[100001],maxx,k;
ifstream f ("scmax.in");
freopen("scmax.out", "w", stdout);
f>>n;
f>>a[0];b[0][0]=1;b[0][1]=-1;
for (i=1;i<n;i++)
{
f>>a[i];
maxx=0;k=-1;
for (j=0;j<i;j++)
if ((maxx<b[j][0])&&(a[i]>a[j]))
{
maxx=b[j][0];
k=j;
}
b[i][0]=maxx+1;
b[i][1]=k;
}
maxx=1;
k=0;
for (i=0;i<n;i++)
if (maxx<b[i][0])
{
maxx=b[i][0];
k=i;
}
printf("%d \n", maxx);
n=maxx;
while (b[k][1]!=-1)
{
c[maxx-1]=a[k];
maxx--;
k=b[k][1];
}
c[0]=a[k];
for (i=0;i<n;i++)
printf("%d ",c[i]);
}