Pagini recente » Cod sursa (job #1352505) | Cod sursa (job #11465) | Cod sursa (job #2659468) | Cod sursa (job #699108) | Cod sursa (job #996704)
Cod sursa(job #996704)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100000],u[100000],i,j,n,x[100000];
int main()
{
f>>n;
for(i=1;i<=n;++i)
f>>v[i];
f.close();
u[1]=1;
short int maxim=0,c=0;
for(i=2;i<=n;++i)
{
short int max=0;
for(j=1;j<=i-1;++j)
if ((u[j]>max) && (v[j]<v[i])) max=u[j];
u[i]=++max;
if (max>maxim) {maxim=max;c=i;}
}
g<<maxim<<"\n";
x[maxim]=v[c];
j=maxim;
while (maxim>0)
{
--c;
if (u[c]==maxim-1)
{
--maxim;
x[maxim]=v[c];
}
}
for(i=1;i<=j;++i)
g<<x[i]<<" ";
g.close();
return 0;
}