Ho fatto una soluzione per il problema porcellino.
Per chi non lo conoscesse, e’ provveduto un grader locale che chiama il tuo programma e ti dice “si hai fatto giusto” o “no hai sbagliato”.
Il primo subtask del problema chiede di risolverlo per N <= 100 e, in locale, ho testato tutti questi casi e vengono tutti giusti.
Tuttavia, una volta submittato, non fa neanche un caso: ci dev’essere quindi un problema con l’I/O o qualcosa del genere. Tuttavia, avendo usato il grader originale, non so veramente che pesci pigliare! Quindi chiedo aiuto a voi :).
Allego il mio codice:
#include <stdbool.h>
#include <iostream>
using namespace std;
bool chiedi(int X);
int indovina() {
uint q = 0xFFFFFFFF;
uint ans = 0;
uint d = 1;
chiedi(q);
q <<= 1;
for (int i = 1; i < 32; i++) {
if (!chiedi(q)) ans += d;
d <<= 1;
q <<= 1;
}
return ans;
}
Grazie mille in anticipo tutti.