Изменения
→Решение за время O(N3)
'''for''' j = 1...m
'''if''' a[i] == b[j]
d[i][j] := 1 // НОВП как минимум 1, состоит из одного элемента a[i] <-> b[j]
'''for''' k = 1...i-1
'''if''' a[k] < a[i] '''and''' d[i][j] < d[k][j] + 1
d[i][j] := d[k][j] + 1 prev[i] := k
'''else'''
d[i][j] = d[i][j-1]
// восстановление
b_i := 1 // ищем лучший элемент d[b_i][m] <tex> \rightarrow </tex> max
'''for''' i = 1...n
'''if''' d[b_i][m] < d[i][m]
b_i := i
vector<int> answer
pos = b_i // проходим по массиву a, выписывая элементы НОВП