# LA DIETA DI POLDO - Problemiiii

**URL:** <https://forum.olinfo.it/t/la-dieta-di-poldo-problemiiii/7847>\
**Category:** Aiuto\
**Created:** [16 Novembre 2022, 12:27am UTC](https://forum.olinfo.it/t/la-dieta-di-poldo-problemiiii/7847 "2022-11-16T00:27:56Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![lucafatone](https://forum.olinfo.it/user_avatar/forum.olinfo.it/lucafatone/32/1432_2.png) [@lucafatone](https://forum.olinfo.it/u/lucafatone)\
**Post date:** [16 Novembre 2022, 12:27am UTC](https://forum.olinfo.it/t/la-dieta-di-poldo-problemiiii/7847/1 "2022-11-16T00:27:56Z")

</div>

Ciao a tutti! Ho provato ripetutamente a risolvere ‘La dieta di Poldo’, completamente a mio modo pur sapendo che ne esistono tanti altri. Non capisco perchè ricevo solo 5/100, lascio il codice qui:

> #include   
> #include   
> #include
> 
> using namespace std;
> 
> int main() {  
> ios::sync\_with\_stdio(false);
> 
> ```
> ifstream cin("input.txt");
> ofstream cout("output.txt");
> 
> int N,mangiati=1,massimo=1,i=0;
> cin >> N;
> vector<int> V(N);
> for(int i = 0; i < N; i++) {
> cin >> V[i];
> }
> i = 0;
> for(int i=0;i<N-1;i++){
> if (V[i]>V[i+1]) mangiati = mangiati + 1;
> else if (mangiati > massimo){
> massimo = mangiati; mangiati = 1;
> }
> else mangiati = 1;
> }
> if (mangiati > massimo) massimo = mangiati;
> cout << massimo;
> return 0;
> 
> ```
> 
> }

Come posso fare?? ☹

---

<div class="post-metadata">

**Author:** ![FrancescoFam](https://forum.olinfo.it/user_avatar/forum.olinfo.it/francescofam/32/1455_2.png) [@FrancescoFam](https://forum.olinfo.it/u/FrancescoFam)\
**Post date:** [19 Novembre 2022, 5:41pm UTC](https://forum.olinfo.it/t/la-dieta-di-poldo-problemiiii/7847/2 "2022-11-19T17:41:38Z")

</div>

Per risolvere questo problema ho usato la dp, tenendo in considerazione le migliori combinazioni possibili. Il tuo codice invece scarta molte altre combinazioni che portano alla soluzione. Considera questo input:

5  
5 6 2 4 3

Il tuo codice da come risultato 2, combinando il piatto di peso 6 con quello di peso 2, quando la migliore combinazione è scegliere il secondo piatto (di peso 6) il quarto piatto (di peso 4) e l’ultimo piatto (di peso 3)

---

<div class="post-metadata">

**Author:** ![lucafatone](https://forum.olinfo.it/user_avatar/forum.olinfo.it/lucafatone/32/1432_2.png) [@lucafatone](https://forum.olinfo.it/u/lucafatone)\
**Post date:** [20 Novembre 2022, 5:36pm UTC](https://forum.olinfo.it/t/la-dieta-di-poldo-problemiiii/7847/3 "2022-11-20T17:36:43Z")

</div>

Inizialmente non avevo letto e capito che si potesse scartare uno o più panini. Detto questo ho sentito parlare molto di dp, senza capire come poterla davvero applicare al problema, sai darmi un indizio? Grazie! =)

---

<div class="post-metadata">

**Author:** ![FrancescoFam](https://forum.olinfo.it/user_avatar/forum.olinfo.it/francescofam/32/1455_2.png) [@FrancescoFam](https://forum.olinfo.it/u/FrancescoFam)\
**Post date:** [20 Novembre 2022, 6:00pm UTC](https://forum.olinfo.it/t/la-dieta-di-poldo-problemiiii/7847/4 "2022-11-20T18:00:31Z")

</div>

Per risolvere il problema, innanzitutto ho cambiato punto di vista: con la dp quello che fai è dividere il problema in sottoproblemi, cercando la soluzione migliore per ognuno e unendo quelle che trovi per ottenere la soluzione finale.  
Riesci a trovare un modo per dividerlo in sottoproblemi?  
Hint:

Immagina di avere un solo panino, come ti comporteresti? E se ne aggiungessi uno ad ogni passo, quale sarebbe la soluzione ottima ad ogni situazione?

---

<div class="post-metadata">

**Author:** ![lucafatone](https://forum.olinfo.it/user_avatar/forum.olinfo.it/lucafatone/32/1432_2.png) [@lucafatone](https://forum.olinfo.it/u/lucafatone)\
**Post date:** [20 Novembre 2022, 9:15pm UTC](https://forum.olinfo.it/t/la-dieta-di-poldo-problemiiii/7847/5 "2022-11-20T21:15:25Z")

</div>

Grazie 👍 😄
