Pagini recente » Cod sursa (job #2960264) | Cod sursa (job #1699188) | Cod sursa (job #834597) | Cod sursa (job #309069) | Cod sursa (job #1873195)
#include <cstdio>
using namespace std;
#define nmax 100003
long long n,v[nmax],lg[nmax],pz[nmax],maxa=-1,poz;;
void Read()
{
scanf("%llu",&n);
for(int i=1; i<=n; i++)
scanf("%llu",&v[i]);
}
void subsir()
{
lg[n]=1;
pz[n]=-1;
for(int i=n-1; i>=1; i--)
{
lg[i]=1;
pz[i]=-1;
for(int j=i+1; j<=n; j++)
if(v[i]<v[j] && lg[i]<lg[j]+1)
{
lg[i]=lg[j]+1;
pz[i]=j;
}
if(lg[i]>maxa)
{
maxa=lg[i];
poz=i;
}
}
printf("%llu",maxa);
printf("\n");
while(poz!=-1)
{
printf("%llu ",v[poz]);
poz=pz[poz];
}
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
Read();
subsir();
return 0;
}