logo

Ce să faci în momentul răspunsului greșit (WA)?

A existat întotdeauna un caz în care un răspuns greșit dă prea multă durere decât TLE (depășirea limitei de timp) ca și în primul rând, nu ați putut stabili ce caz de testare eșuează, dar mai târziu puteți estima că pentru ce valoare a lui N (Instrucțiune totală) ar afișa TLE. 
 

Deci, ce să faci în acel moment?

    Citiți cu atenție întrebarea:La prima dată când ați primit WA (Răspuns greșit), asigurați-vă întotdeauna că ați citit fiecare cuvânt și că ați înțeles pe deplin întrebarea, deoarece de cele mai multe ori am omis acea parte anume care este baza întregii întrebări. 
     Verificați formatarea de intrare/ieșire:În cea mai mare parte, programatorii uită de obicei să adauge o nouă linie sau spațiu alb în funcție de cerințele întrebării. Așa că, înainte de a trimite soluția la judecătorul online, încercați să rulați programul în compilatoare online precum code.geeksforgeeks.org sau ideone .Verificați algoritmul/logica programului:Asigurați-vă că utilizați o logică corectă care acoperă sau nu toate cazurile de testare. 
     Cazuri de testare de colțÎncercați să rulați codul pe cazuri de testare limită, dacă este posibil, cum ar fi 0 1 2 sau N. 

     

Evitați greșelile stupide



    Inițializați variabila:Uneori uităm să reinițializăm tablourile de variabile după fiecare caz de testare T. De exemplu- 
    • Inițializați valoarea variabilei de numărare la 0.
    • Setarea tuturor valorilor matricei DP[] la 0 sau -1.
    Tip de date Overflow:Păstrați întotdeauna constrângerea dată asupra valorii lui N sau a altor intrări în minte și faceți programul în intervalul tipului de date corect, cum ar fi int long long în C/C++ sau int long în JAVA etc., pentru a evita depășirea. 
     Problemă modulară:În întrebări precum Modular Arithmetic (răspuns % MOD) asigurați-vă întotdeauna că răspunsul nu primește o valoare negativă, așa că încercați să utilizați (răspuns + MOD) % MOD care va acoperi toate posibilitățile. 
     

Depanare  

    Cea mai importantă parte este depanarea:Puteți fie să utilizați depanatorul încorporat al Codeblock Eclipse în C/C++ și, respectiv, JAVA, fie puteți imprima variabila după fiecare linie, astfel încât să puteți estima dacă programul dumneavoastră rulează în funcție de cerințele dvs. sau nu.Utilizați afirmația:Dacă aveți de gând să scrieți o mulțime de linii în codul dvs., atunci folosirea assert() merită din plin. Clic Aici pentru a citi mai multe despre cum să utilizați Assertion în programarea competitivă. 
     Căutați sugestiile oferite:Deși acesta ar trebui să fie ultimul pas, trebuie să vă uitați la comentariile de mai jos, în care și alți programatori s-ar putea confrunta cu aceeași problemă și au oferit un indiciu despre cum să eradicați această problemă.



În cele din urmă, încercați întotdeauna să scrieți un cod curat cu o funcție mică, care au un scop bine definit.  

 

Creați un test