E' un esercizio di programmazione dinamica. Se si fa fatica a vedere una soluzione, si incominci clo progettare un'elegante soluzione ricorsiva non pretendendo da subito la polinomialita'. In questo modo ci si confrontera' gradualmente col problema incominciando a dialogare utilmente con lo stesso. Tale soluzione comunque dara' non pochi punti e, inoltre, potra' sempre venire comodo come soluzione di riferimento per il debugging o la cross-validation di eventuali soluzioni piu' ambiziose.