Algobadge shiftmul 50/100

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:

  1. se passi>K allora giricompletati=0 e giriparziali=K e siamo tornati a una soluzione identica a quella iniziale.
  2. se passi==K allora giricompletati=1 e giriparziali=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:

  1. Gira nel verso giusto e correggi il modo in cui calcoli passi;
  2. 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.
  3. Le 3 domande di qualche messaggio fa.
2 Mi Piace