Pagini recente » Cod sursa (job #1017174) | Cod sursa (job #2529569) | Cod sursa (job #2324158) | Cod sursa (job #1387613) | Cod sursa (job #457748)
Cod sursa(job #457748)
#include<iostream.h>
//#define MAXN 100010
int n,v[ 100010 ],a[ 100010 ],last[ 100010 ],poz;
int sol[ 100010 ];
int main()
{
int max;
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
scanf("%d", &v[i]);
a[i]++;
}
for(int i=1 ;i <= n; i++)
for(int j= i + 1 ;j<=n; j++)
{
if(v[i] < v[j] && a[ i ] + 1 > a[ j ])
{
a[ j ] = a[ i ] + 1;
last[j]=i;
}
if( a[ j ] > max)
{
max = a[j];
poz=j;
}
}
printf("%d\n", max);
return 0;
int nr = max;
while( poz )
{
sol[ nr-- ] = poz;
poz = last[ poz ];
}
for(int i=1;i<=max;i++)
printf("%d ", v[ sol[ i ]]);
printf("\n");
return 0;
}