Aiuto house of cards

Faccio 50/100 a causa dell’ultimo testcase dell’ultimo e penultimo subtask.

link al problema: https://training.olinfo.it/#/task/ois_cards/submissions

link al codice: https://pastebin.com/vaC2TDVV

La cosa strana è che con questo stesso codice ho fatto 100/100 alle gare di martedì.

Quando moltiplichi interi a 32 bit il risultato resta a 32 bit, salvarlo in un long long non aiuta se l’overflow è già avvenuto. Prova a usare risp=C*1LL*(R-C+1) o risp = (long long)C*(long long)(R-C+1), che estende gli interi fino a 64 bit prima della moltiplicazione.

1 Mi Piace

Grazie mille, a quanto pare il problema era proprio questo. :grin:

Input
The first and only line of the input contains three integers: N, R and C.

N serve veramente?

E anche se non servisse, che male c’è a riportarlo? :slightly_smiling_face:

2 Mi Piace

Niente, solo che è la prima volta che mi imbatto in un problema con un dato in input che mi pare superfluo.

Tecnicamente, la maggior parte dei task che mi vengono in mente hanno dati superflui :stuck_out_tongue: prendi poldo, ad esempio: hai un numero N in input seguito da una riga con N numeri. Basterebbe leggere la seconda riga come stringa e splittarla sullo spazio, ottenendo un array lungo N, quindi dare N all’inizio è superfluo. Pensa anche a qualsiasi problema in cui viene data in input una matrice N x M e vengono dati (in modo superfluo) i valori di N e M.

1 Mi Piace

Anche perché esistono soluzioni che lo utilizzano, in gara utilizzandolo avevamo fatto 100. :slight_smile:

1 Mi Piace

Vero quello che dici, però nei task di cui parli i dati “superflui” fanno comunque comodo per chi scrive il codice, Qui mi sembrava che N non servisse proprio, tutto qui.

Secondo me aiuta a visualizzare il problema e forse escluderlo dall’input indirizza già verso un certo tipo di soluzione :slightly_smiling_face:

1 Mi Piace