Pagini recente » Cod sursa (job #38055) | Cod sursa (job #46561) | Cod sursa (job #2117410) | Cod sursa (job #117810) | Cod sursa (job #1117203)
#include <cstdio>
#include <fstream>
using namespace std;
long nr[100001],max1[100001],next1[100001],gmax,sf;
int main ()
{
long i,j,N,crt;
ifstream f("scmax.in");
/*freopen("scmax.in", "r", stdin);
scanf("%d", &N);
for (i=1; i<=N; i++)
{
scanf("%d", &nr[i]);
}*/
f>>N;
for (i=1; i<=N; i++) f>>nr[i];
for (i=N; i>=1; i--)
{
max1[i]=1;
gmax=0;
for (j=N; j>=i+1; j--)
if (nr[i]<nr[j] && max1[j]>max1[gmax]) gmax=j;
if (gmax) max1[i]=max1[gmax]+1;
if (max1[i]>max1[sf]) sf=i;
next1[i]=gmax;
}
freopen("scmax.out", "w", stdout);
printf("%d\n", max1[sf]);
crt=nr[sf];
for (i=sf; next1[i]; i=next1[i]) printf("%d ", nr[i]);
printf("%d", nr[i]);
//printf("\n");
//for (i=1; i<=N; i++) printf("%d ", next[i]);
return 0;
}