const int N = 20;
int max_inc_seq()
{
int A[N] = {....};
int B[N] = {-1};
int C[N] = {-1};
int max=0, max_idx = 0;
for (int i=1; i<N; i++) B[i] = C[i] = 0;
for (int i=0; i<N; i++) for (int j=i+1; j<N; j++)
if (A[j]>A[i] && B[i]+1>B[j])
B[j] = B[C[j]=i] + 1;
for (int i=0; i<N; i++) if (B[i] > max) max = B[max_idx=i];
int i=0;
for (i=max_idx; i!=C[i]; i=C[i])
printf("%3d <-- ", A[i]);
printf("%3d\n", A[i]);
}