Cosa fare al momento della risposta sbagliata (WA)?
C'è sempre stato il caso in cui una risposta sbagliata dà troppo dolore piuttosto che TLE (superamento del limite temporale) come in precedenza non è stato possibile accertare quale caso di test sta fallendo, ma in seguito è possibile stimare per quale valore di N (istruzione totale) mostrerebbe TLE.
Quindi cosa fare in quel momento?
Leggi attentamente la domanda:
La prima volta che ricevi WA (risposta sbagliata), assicurati sempre di aver letto ogni singola parola e di aver compreso appieno la domanda perché la maggior parte delle volte abbiamo saltato quella parte particolare che è la base dell'intera domanda.
Controlla la formattazione di input/output:
Per lo più i programmatori di solito dimenticano di aggiungere una nuova riga o uno spazio bianco in base ai requisiti della domanda. Quindi, prima di inviare la soluzione al giudice online, prova a eseguire il tuo programma in compilatori online come code.geeksforgeeks.org O ideone .
Controlla l'algoritmo/logica del programma:
Assicurati di utilizzare la logica corretta che copra tutti i casi di test o meno.
Casi di test angolari
Prova a eseguire il codice su casi di test limite, se possibile, come 0 1 2 o N.
Evita errori stupidi
Inizializza variabile:
A volte ci dimentichiamo di reinizializzare gli array di variabili dopo ogni caso di test T. Ad esempio-
Inizializza il valore della variabile count su 0.
Impostazione di tutti i valori dell'array DP[] su 0 o -1.
Tipo di dati Overflow:
Tieni sempre a mente il vincolo dato sul valore di N o altro input e rendi il tuo programma nell'intervallo del tipo di dati corretto come int long long in C/C++ o int long in JAVA ecc. per evitare overflow.
Problema modulare:
In domande come Aritmetica modulare (risposta % MOD) assicurati sempre che la risposta non ottenga un valore negativo, quindi prova a utilizzare (risposta + MOD) % MOD che coprirà tutte le possibilità.
Debug
La parte più importante è il debug:
Puoi utilizzare il debugger integrato di Codeblock Eclipse rispettivamente in C/C++ e JAVA oppure puoi stampare la variabile dopo ogni riga in modo da poter stimare che il tuo programma sia in esecuzione in base alle tue esigenze o meno.
Usa asserzione:
Se hai intenzione di scrivere molte righe nel tuo codice, vale assolutamente la pena usare assert(). Clic Qui per saperne di più su come utilizzare Assertion nella programmazione competitiva.
Cerca i suggerimenti forniti:
Anche se questo dovrebbe essere l'ultimo passaggio, è necessario guardare i commenti forniti di seguito in cui anche altri programmatori potrebbero aver affrontato lo stesso problema e hanno dato un suggerimento su come sradicare questo problema.
Alla fine prova sempre a scrivere un codice pulito con una piccola funzione che abbia uno scopo ben definito.