Pagini recente » Cod sursa (job #1267113) | Cod sursa (job #714875) | Cod sursa (job #2552545) | Cod sursa (job #2584641) | Cod sursa (job #1054242)
#include <iostream>
#include<fstream>
using namespace std;
int v[100001],i,n,j,k,b[100001],p[1000001];
ifstream f("scmax.in");
ofstream g("scmax.out");
void rez()
{
int max,ok,x=0,k=0,y;
b[1]=1;
for(i=2;i<=n;i++)
{
max=0;p[i]=-1;
for(j=1;j<i;j++)
if(v[j]<v[i]&&b[j]>max)
max=b[j];
{
p[i]=j;
}
b[i]=max+1;
if(x<b[i])
{
x=b[i];
}
}
max=0;
g<<x<<endl;
/*for(i=1;i<=n;i++)
{
if(max<b[i])
{
max=b[i];
while(b[i]==max)
{
ok=1;
i++;
}
i--;
if(ok&&k<x)
{
g<<v[i]<<" ";
k++;
}
}
}*/
for(i=n;i>=1&&x;i--)
{
if(b[i]==x)
{
p[x]=v[i];
x--;
k++;
}
}
for(i=1;i<=k;i++)
g<<p[i]<<" ";
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
rez();
return 0;
}