Ignora il messaggio precedente, il contenuto è pressoché lo stesso di questo ma alcuni dettagli sono diversi (non mi ero accorto di uno dei tanti problemi del tuo codice).
A meno di essere @MatteoArcari tendenzialmente non farai 100 su un problema con una soluzione che sbaglia i casi d’esempio, visto che le loro soluzioni sono generate usando la soluzione ufficiale. Quindi anche ammesso che ci fosse una discrepanza tra testo ed esempio, la soluzione non è ignorarla e procedere.
Detto questo, ti garantisco che il testo è corretto, e che l’array viene shiftato verso destra esattamente come c’è scritto. Ma per di più, pensi che un problema che, oltre a essere da parecchio tempo sulla piattaforma, è anche abbastanza importante (visto che fa parte di algobadge) abbia errori così grossolani nel testo?
Ora, se il tuo codice calcolasse effettivamente correttamente la variabile passi
, varrebbero le cose che ho detto prima nel messaggio eliminato, cioè che la soluzione è completamente rotta se fai più di un giro completo.
La cosa divertente è che, poiché la condizione nel ciclo while
è sbagliata, tutti quei problemi non riescono neppure a manifestarsi, poiché la variabile passi
avrà come valore il primo x\ge K tale che xD sia multiplo di N.
Esempio: N=10, \, K=1048, \, D= 4 e il tuo codice trova passi=1053
A questo punto si verificano 2 casi:
- se
passi>K
alloragiricompletati=0
egiriparziali=K
e siamo tornati a una soluzione identica a quella iniziale. - se
passi==K
alloragiricompletati=1
egiriparziali=0
e di nuovo siamo tornati a una soluzione identica a quella iniziale.
Dunque l’unico motivo per cui il codice rotto non si rompe è che c’è dell’altro codice rotto prima che ne impedisce l’esecuzione (ah l’informatica).
Visto che di nuovo non voglio darti la soluzione in mano:
- Gira nel verso giusto e correggi il modo in cui calcoli
passi
; - Quando l’avrai fatto, il resto del codice sotto sarà ancora rotto, anche se, ti avviso in anticipo, farà i casi d’esempio in quanto in ognuno di essi i cicli completi sono al più 1. Debuggarlo non sarà difficile.
- Le 3 domande di qualche messaggio fa.