Ciao a tutti,
sto cercando di risolvere paletta ma ottengo 69/100 a causa del timeout
non saprei proprio come migliorare l’algoritmo,
questo si basa sulla sostituizione dell’elemento i con quello alla posizione i+2 nel caso sia maggiore e di decrementare i di 3 per poi continuare il ciclo
Prima di pensare ad ordinarlo, riesci a trovare una condizione necessaria e sufficiente affinché il vettore sia ordinabile?
Per questo punto ti consiglio di osservare una sequenza come questa: [1, 0, 2]
Al posto di ordinare effettivamente tramite “paletta-sort”, riesci a trovare un modo alternativo per sapere a priori quante mosse ci vorranno?
Immagina di essere alla fine, quindi con il vettore ordinato, e inizia a “disordinarlo”; noti qualcosa?
In ogni caso, se l’array si può ordinare il risultato può essere la somma del numero di swap degli elementi alla posizione pari e quelli alla posizione dispari?
Io l’anno scorso ho preso l’argento sapendo dijkstra e la dinamica … ma direi che mi è andata fin troppo bene.
Se punti ad una medaglia ti consiglio di studiarti almeno i segment tree (che a volte troverai indicati come range tree, 'cause reasons), e se riesci anche il fenwick, visto che si tratta veramente di poche righe.
Ti linko un paio di file da cui puoi iniziare: https://digit.cms.di.unipi.it/resources/rangetree.pdf https://digit.cms.di.unipi.it/resources/fenwick.pdf