logo

Vad ska man göra vid tidpunkten för fel svar (WA)?

Det har alltid funnits ett fall att ett fel svar snarare ger för mycket smärta än TLE (Time Limit Exceed) som i tidigare kunde du inte avgöra vilket testfall det misslyckades men i senare kan du uppskatta att för vilket värde på N (Total instruktion) den skulle visa TLE. 
 

Så vad ska man göra vid den tiden?

    Läs frågan noggrant:Första gången du fick WA(Fel svar), var alltid säker på att du har läst varje ord och förstått frågan till fullo eftersom vi för det mesta hoppade över just den delen som är grunden för hela frågan. 
     Kontrollera in-/utgångsformatering:Oftast glömmer programmerare vanligtvis att lägga till ny rad eller vitt utrymme enligt kravet på frågan. Så innan du skickar in lösningen till Online-domaren, försök att köra ditt program i onlinekompilatorer som code.geeksforgeeks.org eller idén .Kontrollera programmets algoritm/logik:Se till att du använder korrekt logik som täcker alla testfall eller inte. 
     HörntestfallFörsök att köra din kod på gränstestfall om möjligt som 0 1 2 eller N. 

     

Undvik dumma misstag



    Initiera variabel:Ibland glömmer vi att återinitiera variabeluppsättningar efter varje testfall T. Till exempel- 
    • Initiera värdet på räknevariabeln till 0.
    • Ställer in alla värden för DP[]-matrisen till 0 eller -1.
    Datatyp Overflow:Ha alltid den begränsning som ges på värdet på N eller annan indata i ditt sinne och gör ditt program inom intervallet för korrekt datatyp som int long long i C/C++ eller int long i JAVA etc för att undvika spill. 
     Modulärt problem:I frågor som Modular Arithmetic (svar % MOD) se alltid till att svaret inte får ett negativt värde så försök att använda (svar + MOD) % MOD som täcker alla möjligheter. 
     

Felsökning  

    Den viktigaste delen är felsökning:Du kan antingen använda inbyggd debugger av Codeblock Eclipse i C/C++ respektive JAVA eller så kan du skriva ut variabeln efter varje rad så att du kan uppskatta att ditt program körs enligt dina krav eller inte.Använd påstående:Om du ska skriva många rader i din kod så är det värt det att använda assert(). Klick här för att läsa mer om hur du använder Assertion i konkurrenskraftig programmering. 
     Leta efter förslag som ges:Även om detta borde vara det sista steget, men du måste titta på kommentarerna nedan där andra programmerare också kan ha ställts inför samma problem och har gett en ledtråd om hur man kan utrota detta problem.



Försök i slutändan alltid att skriva en ren kod med en liten funktion som har ett väldefinierat syfte.  

 

Skapa frågesport