La idea básica:
La cadena más larga no baja estas preguntas, ideas dp matriz;
Puntos clave:
No;
#include <iostream> #include <vector> #include <algoritmo> using namespace std; const int maxN = 25; int n; int d [maxN]; int dp [maxN]; int main () { while (cin >> n) { llenado (d, d + maxN, 0); de llenado (dp, dp + maxN, 0); for (int i = 0; i <n; i ++) { cin >> d [i]; } Dp [0] = 1; for (int i = 1; i <n; i ++) { int Max = 0; for (int j = 0; j <i; j ++) { si (d [i] <= d [j] && dp [J]> Max) Max = dp [j]; } Dp [i] = max (Max + 1, 1); } Sort (dp, dp + n); cout << dp [n - 1] << endl; } }