Borderoul de evaluare

Borderoul de evaluare prezinta informatii despre cum a decurs evaluarea unei solutii trimise de un concurent. Borderoul include timpul de executie, numarul de puncte obtinute la fiecare test si, uneori, mesaje de compilare sau de rulare (runtime) ale solutiei.

Mesaje de eroare

  • OK (sau un mesaj asemanator): programul tau a mers corect pe testul respectiv si ai primit punctele pe care le meritai.
  • Wrong Answer, Raspuns gresit (sau un mesaj asemanator): programul tau a terminat executia, dar raspunsul oferit nu a fost corect; verifica daca ai respectat intocmai cum este precizat in enunt formatul fisierului de iesire cat si formatul fisierului de intrare cand efectuezi citirea
  • Time Limit Exceeded: programul tau a depasit timpul de executie permis pentru testul respectiv; cele mai dese cauze pentru acest mesaj sunt: algoritmul folosit este ineficient, fie programul tau contine bucle care se executa la infinit, fie programul tau incearca sa citeasca de la tastatura, etc.
  • System Error (sau un mesaj asemanator): acest mesaj nu ar trebui sa apara. Anunta echipa infoarena!
  • Missing output file (sau un mesaj asemanator): programul tau nu a creat un fisier de iesire, sau in cazul in care a creat un fisier, nu a avut numele specificat in enuntul problemei.
  • Runtime Error - Invalid memory reference: acest mesaj se poate referi la faptul ca depasesti limita de memorie disponibila (este scrisa in enunt; de asemenea, stiva nu poate depasi 8 MB) sau acces invalid in memorie, accesarea unui pointer invalid, indecsi intr-un tablou care depasesc dimensiunile tabloului, etc.
  • Runtime Error: cele mai cunoscute cauze pentru astfel de mesaje sunt depasirea stivei, accesarea unor fisiere gresite, erori cu numere reale, impartire la 0, etc. Un mesaj foarte intalnit este SIGKILL si semnifica ca programul tau a fost oprit de evaluator datorita unei erori ca cele descrise mai sus.

Punctaj / grupa

In cazul problemelor care folosesc gruparea testelor , se va afisa si punctajul pe grupa pe langa punctajul pe test. In acest caz, testele se evalueaza in ordinea in care au fost grupate, iar pentru a delimita grupele, culoarea de fundal a randurilor alterneaza.

Greseli frecvente

  • nu sterge ecranul si nu scrie nimic pe iesirea standard (ecran). Solutiile trimise sunt corectate automat de sistemul de evaluare. Acesta nu ia in considerare informatiile tiparite pe ecran ci doar cele scrise in fisierul de iesire specificat in descrierea problemei.
  • nu folosi functii care asteapta apasarea unei taste sau introducerea unei valori de la tastatura ($getch$, readkey, readln etc.) Solutiile trimise sunt corectate automat de sistemul de evaluare. Sursele care folosesc astfel de functii vor primi punctaj 0 pentru timp de executie depasit!
  • foloseste doar librariile standard pentru rezolvarea problemelor, adica cele care vin odata cu distributia limbajului de programare. Vezi lista oficiala de compilatoare folosite la infoarena.
  • numele fisierelor este case sensitive! Prin conventie, toate fisierele de intrare si de iesire vor avea nume in lowercase (fara majuscule).

Pentru programatorii C/C++

  • Tipul int din GNU GCC este pe 32 de biti, nu 16 ca in Borland C/C++, char pe 8 biti, short pe 16 biti, long pe 32, long long pe 64 de biti.
  • Foloseste sprintf in loc de itoa sau ltoa.
  • Programul de evaluare ruleaza pe un sistem de operare UNIX. Foloseste "\n" pentru terminarea liniei curente, nu "\r\n".
  • Functia main trebuie sa fie de tip int si sa intoarca 0 - return 0;
  • Nu folosi librarii dependente de sistemul de operare (ex. dos.h, graphics.h). Foloseste evaluatorul pentru a descoperi care sunt acestea.
  • No folosi modificatorii far, huge, _huge, __huge pentru ca nu exista in GNU GCC. De asemenea, nu exista nici functiile care folosesc aceste tipuri de date (de ex. farmalloc, farfree etc.) si nici conceptul de memory model (tiny, small, medium, large, huge). De toate acestea nu mai e nevoie intrucat ai acces la toata memoria prin functii standard si pointer-i standard - new, delete, malloc etc.

Pentru programatorii Pascal

  • Nu folosi nici unul din unit-urile dos, crt sau graph! Nu ai nevoie de nici unul din ele pentru a rezolva problemele de aici. Daca totusi le folosesti, programul nu va compila!