Diferente pentru documentatie/evaluator intre reviziile #10 si #11

Nu exista diferente intre titluri.

Diferente intre continut:

Pentru cei care nu sunt familiari cu sistemele unix sau sunt incepatori in programare, multe dintre mesajele evaluatorului pot parea oarecum criptice.
* Eroare de sistem: Daca ai obtinut aceast mesaj te rugam sa ne contactezi, preferabil pe 'forum':forum. Te rugam sa mentionezi si id-ul job-ului.
* OK: Totul a functionat perfect.
* Memory limit exceeded: Ai depasit limita de memorie. Majoritatea problemelor au o limita de 64 de mega, pe care noi o consideram destul de generoasa.
* Time limit exceeded: Programul tau a depasit limita de timp. Asta inseamna ca programul tau nu este destul de rapid.
* Wall time limit exceeded: Evaluarea a durat prea mult si a fost abandonata. Evaluatorul infoarena masoara doar timpul folosit de programul tau pentru a determina daca iti da TLE, dar exista si o limita fata de "ceasul de perete". Acest mesaj poti sa il obtii daca faci sleep, scanf de la stdin si alte functii care stau degeaba fara sa consume efectiv procesorul.
* Non-zero exit status: Programul tau a returnat o valoare diferita de 0. Cel mai probabil ai uitat return 0; sau ceva similar.
* Killed by signal: Cea mai frecventa eroare cand ai un bug in program. Cand un program incalca anumite conventii in UNIX acel program primeste un "semnal" care de cele mai multe ori il opreste. Cateva semnale comune:
** 11(SIGSEGV): Segmentation fault. Asta in 99% din cazuri inseamna ca ai probleme cu accesul la memorie. Ai iesit din limitele unui vector, ai facut stack overflow, etc.
** 8(SIGFPE): Floating point error. Cauza cel mai frecvent de impartiri la 0.
 
Evaluatoarele problemelor iti vor da si ele un mesaj scurt, cel mai frecvent ceva de genul "OK" sau "Wrong Answer", dar unii propunatorii au umor :).
 
h2. Troubleshooting
Pentru programatorii in Borland C/Pascal este important de tinut minte ca evaluatorul infoarena este un mediu *foarte* diferit fata de dos. Cateva erori comune si cum pot fi rezolvate
*  tipul int din GCC este pe 32 de biti, nu 16 ca in Borland C/C++, char - 8 biti, short - 16 biti, long - 32, long long - 64
* Pe infoarena se face I/O din fisiere, nu de la stdin, stdout. Daca faci scanf de la stdin vezi obtine cel mai probabil "Wall time limit exceeded" (vezi mai sus) iar daca faci printf la stdout rezultatul tau va fi ignorat.
* tipul int din GCC este pe 32 de biti, nu 16 ca in Borland C/C++, char - 8 biti, short - 16 biti, long - 32, long long - 64
* folositi sprintf in loc de itoa sau ltoa.
* programul de evaluare ruleaza pe un sistem de operare UNIX. Folositi "\n" pentru terminarea liniei curente, nu "\r\n"
* aveti grija ca functia main sa fie de tip int si sa intoarca 0 (return 0;)

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.