Pesci mangioni (ois_pesci)

Buona sera, recentemente ho provato a svolgere questo esercizio senza riuscire a totalizzare più di 10 punti anche se a mio parere l’idea è corretta, in poche parole il programma mi da un output errato nel Subtask numero 2 e svariati output non corretti nel Subtask numero 3 e 4, il metodo risolutivo è molto semplice e a mio parere efficace per il tipo di problema:

Creo due pile, una per i pesci in direzione 1 (sinistra) e una per i pesci in direzione 0 (destra), in ogni pila inserisco la dimensione dei relativi pesci. Se i pesci vanno tutti nella stessa direzione ritorno N e fine, Altrimenti confronto i due elementi in testa, il più piccolo viene eliminato (POP), il più grande resta.

Qui c’è il mio codice: https://pastebin.com/UCTWbMjQ.

Se qualcuno ha un’idea o un suggerimento per il quale il mio metodo risolutivo sia errato o non funzionante in certi casi mi aiuterebbe molto. Grazie :slight_smile:

Il caso che mi viene in mente è quando un pesce va a sinistra e non incontrerà nessun altro pesce che va a destra.
Potresti avere un pesce piccolissimo che va a sinistra e un pesce gigante che va a destra ma i due non si incontreranno mai e avrai due pesci alla fine.

Sei sicuro che devi tenerti due pile o te ne basta una?

Ho modificato in modo radicale il codice, (https://pastebin.com/4e9exfj7) e gli output non corretti sono decisamente diminuiti. Però il punteggio rimane lo stesso.

Ho sottoposto il tuo codice e oltre agli output non corretti, hai anche timeout dovuti alla funzione erase .
L’ idea della pila è giusta visto che ci permette di fare inserimenti (push) e rimozioni (pop) con tempo costante.
Prova a tenerti una pila per i pesci che vanno a destra e pian piano che trovi un pesce che va a sinistra verifica due cose:

  1. se la pila è vuota : il pesce che va a sinistra continua il suo moto e rimarrà vivo.
  2. se la pila non è vuota: il pesce che va a sinistra potrà essere mangiato oppure mangierà i pesci che stanno a destra.

La soluzione sarà data dalla somma della size della pila e il numero di pesci che sono andati a sinistra.