Pagini recente » Cod sursa (job #338117) | Cod sursa (job #10154) | Cod sursa (job #1817157) | Cod sursa (job #1386183) | Cod sursa (job #1927544)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in"); ofstream g("scmax.out");
int n,a[100001],x[100001],pc[100001],pc1[100001];
int main()
{
f>>n;
int i,j,m,mp;
for(i=1;i<=n;i++) f>>a[i];
x[1]=1;
pc1[1]=0;
m=0;
mp=0;
for(i=2;i<=n;i++)
{
int p,mm;
mm=0;
p=0;
for(j=1;j<i;j++)
{
if (x[j]>mm)
{
if (a[j]<a[i])
{
mm=x[j];
p=j;
}
}
if (x[j]==mm)
{
if (a[j]<a[p]) p=j;
}
}
x[i]=mm+1;
pc1[i]=p;
if (x[i]>m) {m=x[i]; mp=i;}
}
g<<m<<'\n';
i=mp;
pc[1]=a[mp];
j=1;
while(pc1[i])
{
j++;
pc[j]=a[pc1[i]];
i=pc1[i];
}
for(i=j;i>=1;i--) g<<pc[i]<<' ';
return 0;
}