Problema con "laurea"

Stavo provando un esercizio in vista della gara LuissMatics e non riesco a realizzare 100/100 ai testcase. Il problema in questione è “laurea” e ho provato due approcci:
Programmazione dinamica ma ottengo 50/100 https://pastebin.com/Zc5AuzeB
Brute force ma ottengo 60/100 https://pastebin.com/ic76z9mH
Ci tengo a dire che in nessuno dei due casi supero il limite di tempo ma la piattaforma mi dice di aver sbagliato il testcase, eppure nel secondo caso provo tutte le combinazioni possibili :sweat_smile:
A questo punto credo forse di aver frainteso il problema, aiutatemi per favore!

Salve, ho guardato la tua soluzione in programmazione dinamica e ho notato due errori:

  1. Se hai un mezzo che trasporta più persone di quelle rimanenti puoi utilizzarlo.
  2. mezzi[0] è una posizione valida mentre mezzi[mezzi.size()] no.

Grazie mille, i tuoi consigli mi sono stati utilissimi! Sono riuscito a fare 100/100 con entrambi gli approcci perché mi era sfuggita la considerazione che hai fatto al punto 1.
Per quanto riguarda bruteforce ho considerato anche i casi in cui la somma dei posti totali è maggiore di N, sempre minimizzando il risultato.
Invece, per quanto riguarda l’approccio DP, ho deciso di massimizzare il numero di posti disponibili per un certo budget e ho preso il risultato con il budget più piccolo che mi garantisse posto per tutti.

C’è anche un’altro approccio per risolvere questo problema, quello in cui si usa memoria costante. Per esercizio potresti trovarlo :stuck_out_tongue: