Oii_cena 100/100 però 0.987s

facendo oii_cena la prima cosa che mi è venuta in mente è stato far dipendere la fine ovvero chupito da mojito , quindi creare una specie di sliding window ,che andava a creare la miglior configurazione per un range(In pratica ho fatto una brute force che va a cambiare soltanto quei elementi necessari da una configurazione all’ altra).Sfruttando i costrains ho fatto 100 però è una soluzione borderline l unico chiarimento che volevo avere è per ottimizzare questa semi-bruteforce (nel mio caso sto utilizzando una coda ) come si dovrebbe fare ? l unica idea che mi è venuta è andare a salvare dentro una matrice gli indici che mi servono per quella tipologia di piatto e quindi creare una matrice booleana indici * tipologia di piatto .

Da ciò che ho capito la tua soluzione è simile alla mia( che impiega 0.097s). Io provo a partire da tutte le posizioni del tavolo in cui c’è il primo piatto da prendere, mi tengo un array in cui per ogni piatto da selezionare mi salvo la posizione in cui lo prendo, così, se partendo da una posizione iniziale successiva mi ritrovo a prendere un certo piatto nella stessa posizione, posso fermarmi( uso la ricerca binaria per trovare i piatti di un certo tipo nel tavolo).

grazie per la risposta ; probabilmente il mio code è lento per l utilizzo di una queue quindi tra il pop e il push vado a perdere tempo