Pagini: [1] 2 3   În jos
  Imprimă  
Ajutor Subiect: ONI 2013  (Citit de 31043 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« : Aprilie 09, 2013, 22:38:14 »

Cel mai important este sa spuneti ca sunteti sau nu de acord, poate reusim sa schimbam ceva si sa avem un oni organizat ca la carte Smile
http://blogpetru.wordpress.com/2013/04/09/oni-2013-si-nu-numai/
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #1 : Aprilie 09, 2013, 22:38:46 »

Comentariile mele la articolul initial:

  • Nu cred ca ar strica un sistem mai complex cu detailed feedback la OJI, ONI, baraj, lot, etc. Totusi, costul implementarii unui astfel de sistem si mai ales al instalarii lui este destul de mare pentru potentialul actual al organizatorilor olimpiadei si nu exista motivatie suficienta pentru ca unii oameni sa-si piarda luni intregi de munca pentru o mana de oameni neatenti.
  • E ok ideea cu punctajul maxim dintre toate submisiile, atat timp cat numarul de submisii e limitat (de exemplu 10-20). Altfel, deschidem usa la o noua clasa de bulaneli. Totusi, trebuie rezolvata intai problema precedenta.
  • Cel mai tare cred ca se poate face ceva impotriva singurei probe de la baraj. Toti suntem constienti ca e o problema si stim cauza principala: banii. Exista destul de multi fosti olimpici la informatica care castiga bine si care poate ar fi interesati sa dea o mana de ajutor la imbunatatirea conditiilor actuale de la olimpiada. Probabil ca o donatie acceptabila din partea a 10 oameni ar rezolva problema anual. Ma gandesc ca infoarena ar putea reprezenta un canal transparent prin care sa se rezolve problema asta.
Memorat

Am zis Mr. Green
Challenge
Strain


Karma: 18
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #2 : Aprilie 09, 2013, 22:41:48 »

Din tot ceea ce sa zis in postul anterior propun si eu un sistem nou, care (cel putin personal) PARE mult mai bun.

Unii vor conditii ca la IOI, pentru CALIFICAREA la IOI, ceilalti vor sa aiba concursuri cat mai friendly pentru incepatori pentru a ii incuraja.

De ce sa nu se separe ONI de baraj/lot/calificare la competitiile internationale? Astfel ii multumim pe toti (sau cel putin o mare parte), pentru cei care incep informatica in clasa a 9-a ONI-ul este suficient pentru a ii forma mai departe (este foarte putin probabil sa se califice cineva la IOI in primul an de info). Iar cei care isi pun problema competitiilor internationale au suficienta experienta pentru un sistem ca si la IOI. Pe langa asta am rezolva problemele de tipul "am busit la OJI si din cauza asta nu ma duc la BOI/CEOI/IOI".
Memorat
veleandu
De-al casei
***

Karma: 155
Deconectat Deconectat

Mesaje: 132



Vezi Profilul
« Răspunde #3 : Aprilie 09, 2013, 22:46:29 »

Pe langa asta am rezolva problemele de tipul "am busit la OJI si din cauza asta nu ma duc la BOI/CEOI/IOI".

Asa ceva au iranienii, nu?
Doar ca ei au sarit peste partea cu Oni ...

Sau am putea pune wildcarduri pt baraj, cum a fost pana .. acum ceva timp.
Daca ai 2 sanse si tot gresesti, inseamna ca problema vine de la tine.
Memorat
eudanip
Echipa infoarena
Nu mai tace
*****

Karma: 307
Deconectat Deconectat

Mesaje: 702



Vezi Profilul
« Răspunde #4 : Aprilie 09, 2013, 22:58:59 »

Din tot ceea ce sa zis in postul anterior propun si eu un sistem nou, care (cel putin personal) PARE mult mai bun.

Unii vor conditii ca la IOI, pentru CALIFICAREA la IOI, ceilalti vor sa aiba concursuri cat mai friendly pentru incepatori pentru a ii incuraja.

De ce sa nu se separe ONI de baraj/lot/calificare la competitiile internationale? Astfel ii multumim pe toti (sau cel putin o mare parte), pentru cei care incep informatica in clasa a 9-a ONI-ul este suficient pentru a ii forma mai departe (este foarte putin probabil sa se califice cineva la IOI in primul an de info). Iar cei care isi pun problema competitiilor internationale au suficienta experienta pentru un sistem ca si la IOI. Pe langa asta am rezolva problemele de tipul "am busit la OJI si din cauza asta nu ma duc la BOI/CEOI/IOI".

+1 Smile. Desi parerea mea ca sunt doar vise.
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #5 : Aprilie 09, 2013, 23:02:16 »

Ce parere aveti de prezenta evaluator local instalat pe fiecare calculator care sa-ti spuna daca out-ul tau e corect ?
Memorat
veleandu
De-al casei
***

Karma: 155
Deconectat Deconectat

Mesaje: 132



Vezi Profilul
« Răspunde #6 : Aprilie 09, 2013, 23:05:45 »

Ce parere aveti de prezenta evaluator local instalat pe fiecare calculator care sa-ti spuna daca out-ul tau e corect ?

Personal cred ca intervin probleme de securitate.
De implementat, cred ca ar fi foarte usor daca ar fi legate totusi la retea.
Stiu stiu .. cablu .. bani.
Dar sa pui niste oameni sa copieze un evaluator pe fiecare calculator, mi se pare prea mult de lucru.
Memorat
harababurel
Client obisnuit
**

Karma: 23
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #7 : Aprilie 09, 2013, 23:07:04 »

Citat
În multe județe locurile sunt distribuite neuniform. De exemplu in Bucuresti la clasa a 11-a au fost prea puține locuri în timp ce clasa a 9-a a avut 10 locuri.
Sunt de acord in legatura cu distributia locurilor pe clase, dar nu cred ca este implicata direct comisia care organizeaza ONI. In judetul meu, inspectoratul judetean a decis repartizarea celor 4 locuri, singurul criteriu de departajare fiind punctajul obtinut (s-au calificat la ONI primele 4 punctaje, indiferent de clasa). E de asteptat ca diferiti algoritmi de departajare sa fie de preferat in defavoarea altora, dar totul ramane la latitudinea inspectoratelor judetene.

Citat
De exemplu dacă anul trecut un județ a avut rezultate bune la a 10-a, anul următor clasa a 11-a va avea locuri in plus. La clasa a 9-a cred că ar trebui sa fie făcută o medie a rezultatelor județului din anii trecuți de la clasa a 9-a. Din câte știu eu în ultimii doi ani dintre cei care au fost in lot in anul precedent cel putin doi oameni nu au mai trecut de oji. De aici ne dăm seama că selecția pentru oni sau selecția loturilor (sau ambele  ) nu sunt făcute cum ar trebui.
Cred ca cel mai in regula (si simplu) ar fi sa se distribuie locurile in functie de punctajul obtinut indiferent de clasa. Daca exista 3 elevi buni la clasa a 12-a care au punctaje foarte mari, iar la restul claselor punctajele sunt mici, atunci cei 3 ar trebui sa se califice chiar daca sunt in aceeasi clasa. In cazul unor punctaje apropiate, ar fi de preferat calificarea unui elev din clasele 10-11-12, in defavoarea unuia de a 9-a (clasa la care se obtin punctaje mari cu un nivel mai scazut de cunostinte).

Citat
Din moment ce la olimpiadele și concursurile internaționale exista feedback parțial mi s-ar părea normal ca și la selecția pentru ele să existe feedback. Mi se pare o prostie sa iei 0 puncte pe o problemă pentru că ai MLE sau pentru că nu ai respectat cu strictețe formatul fișierului de ieșire. Totuși aici sunt subiectiv pentru că am fost în ambele situații.
Si in aceasta privinta sunt de acord. Cateva teste de feedback date de comisie, in formatul celor de la Algoritmiada, ar putea reduce numarul de esecuri datorate unor astfel de greseli. Chiar daca testele de feedback nu vor face parte din setul final pe care vor fi evaluate sursele, faptul ca participantii pot vedea cum se comporta evaluatorul comisiei cu sursele lor le asigura un anumit grad de siguranta.

Citat
Cred că problema asta s-ar putea rezolva destul de ușor la oji din moment ce toate calculatoarele dintr-o școală sunt conectate la o rețea. La oni ar exista două soluții: Evaluator local care ar cripta(hashui)  fișierul .out si verificator in caz că sunt mai multe răspunsuri posibile sau o rețea de calculatoare la oni. Rețeaua ar necesita o investiție dar pe urmă ar putea fi folosită la mai multe ediții.
In cazul in care testele de feedback nu fac parte din cele definitorii, nu ar fi nevoie de criptarea lor, usurand astfel munca comisiei.

Citat
O problemă destul de mare mi se pare că e selecția lotului. În ultimii doi ani după noua metodă de selecție în care se ține cont și de rezultatul de la oni mulți de clasa a 9-a sau a 10-a îi depășesc pe cei mai mari datorită coeficientului. Mi se pare nedrept să departajezi elevi după subiecte diferite și relativ față de ceilalți din generația lor. Cred că ar fi mult mai potrivită înlocuirea zilei de pauză cu o probă de baraj sau un set de probleme mai numeros.
Cred ca singurul motiv pentru care ar merita pastrat coeficientul de la ONI este pentru a usura calificarea in lot a unui elev bun, care s-a descurcat la cele doua probe, dar care se intampla sa aiba o zi proasta la proba de baraj.
Reintroducerea celei de-a 2-a probe de baraj ar rezolva de la sine atat problema pe care incearca sa o rezolve coeficientul, cat si problemele pe care acest sistem le atrage de la sine (calificarea in lot a prea multor elevi din clasele 9-10). In plus, un set de 6 probleme (in comparatie cu 3) permite un grad mult mai ridicat de variatie, motiv pentru care ar creste si nivelul de acuratete al departajarii.

Citat
Totuși chiar și cu 3 probleme s-ar putea face o departajare bună dacă comisia ar prezenta un set de probleme cu teste bine realizate și cu probleme bine calibrate ca și dificultate.
Din nou, introducerea a 2 probe de baraj ar rezolva aceasta problema.

Citat
În plus atât timp cât nu exista feedback nu sunt de acord cu problemele interactive deoarece nu prea ai cum să-ți dai seama că interacționezi corect cu programul comisiei. De exemplu anul ăsta au fost foarte multe punctaje de 0 (http://oni2013.info.tm/r_b.pdf) la o problemă la care era destul de simplu sa iei 40 puncte din cauză că uita să citească un 1 afișat de programul comisiei, iar exemplul de pe foaie nu era prea cuprinzător.
Si in acest caz, cred ca ar trebui introdus un mini-set de teste de feedback, sau chiar programul comisiei care ruleaza in paralel cu executabilele participantilor, pentru a putea simula interactiunea dintre cele 2.


In legatura cu evaluarea in formatul IOI, cred ca ar fi bine sa fie aplicata cel putin in cazul probei de baraj, daca nu chiar pentru toate probele de concurs.
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #8 : Aprilie 09, 2013, 23:07:17 »

Ce parere aveti de prezenta evaluator local instalat pe fiecare calculator care sa-ti spuna daca out-ul tau e corect ?

Personal cred ca intervin probleme de securitate.
De implementat, cred ca ar fi foarte usor daca ar fi legate totusi la retea.
Stiu stiu .. cablu .. bani.
Dar sa pui niste oameni sa copieze un evaluator pe fiecare calculator, mi se pare prea mult de lucru.

Sistemele de operare nu sunt instalate de la zero pe calculatoarele de la ONI? Daca da, atunci nu vad o problema in a pune evaluatoarele local.
Memorat

Am zis Mr. Green
Challenge
Strain


Karma: 18
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #9 : Aprilie 09, 2013, 23:09:13 »

Ce parere aveti de prezenta evaluator local instalat pe fiecare calculator care sa-ti spuna daca out-ul tau e corect ?

Personal mi se pare useless atata timp cat nu are si niste teste relevante, pentru ca daca ai timp sa iti generezi teste singur in concurs, atunci ai timp si de ceea ce ar face evalul (sa verifici afisarea, formatul, etc.). Totusi, la problemele interactive cred ca ar fi foarte folositor sa avem evaluatorul instalat, astfel s-ar micsora probabilitatea de a busi problema din cauza protocolului sursa-eval.
Memorat
eudanip
Echipa infoarena
Nu mai tace
*****

Karma: 307
Deconectat Deconectat

Mesaje: 702



Vezi Profilul
« Răspunde #10 : Aprilie 09, 2013, 23:12:27 »

Ce parere aveti de prezenta evaluator local instalat pe fiecare calculator care sa-ti spuna daca out-ul tau e corect ?

Sincer suna bine. Ar fi frumos. Macar daca scapam de greselile clasice de: am uitat sa citesc un 1 sau am afisat prost nu stiu ce.
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #11 : Aprilie 09, 2013, 23:15:12 »

Ce parere aveti de prezenta evaluator local instalat pe fiecare calculator care sa-ti spuna daca out-ul tau e corect ?

Personal mi se pare useless atata timp cat nu are si niste teste relevante, pentru ca daca ai timp sa iti generezi teste singur in concurs, atunci ai timp si de ceea ce ar face evalul (sa verifici afisarea, formatul, etc.). Totusi, la problemele interactive cred ca ar fi foarte folositor sa avem evaluatorul instalat, astfel s-ar micsora probabilitatea de a busi problema din cauza protocolului sursa-eval.

Totusi sunt unele probleme la care trebuie sa respecti cu strictete formatul fisierului de iesire. Acolo ar prinde bine
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #12 : Aprilie 09, 2013, 23:19:12 »

Cred ca un evaluator local nu ar fi greu de facut. S-ar putea instala pe fiecare calculator o copie locala de infoarena sau o varianta mai simple a infoarenei si nu ar da niciun fel de bataie de cap celor care configureaza calculatoarele.
Memorat
Challenge
Strain


Karma: 18
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #13 : Aprilie 09, 2013, 23:23:41 »


Citat
De exemplu dacă anul trecut un județ a avut rezultate bune la a 10-a, anul următor clasa a 11-a va avea locuri in plus. La clasa a 9-a cred că ar trebui sa fie făcută o medie a rezultatelor județului din anii trecuți de la clasa a 9-a. Din câte știu eu în ultimii doi ani dintre cei care au fost in lot in anul precedent cel putin doi oameni nu au mai trecut de oji. De aici ne dăm seama că selecția pentru oni sau selecția loturilor (sau ambele  ) nu sunt făcute cum ar trebui.
Cred ca cel mai in regula (si simplu) ar fi sa se distribuie locurile in functie de punctajul obtinut indiferent de clasa. Daca exista 3 elevi buni la clasa a 12-a care au punctaje foarte mari, iar la restul claselor punctajele sunt mici, atunci cei 3 ar trebui sa se califice chiar daca sunt in aceeasi clasa. In cazul unor punctaje apropiate, ar fi de preferat calificarea unui elev din clasele 10-11-12, in defavoarea unuia de a 9-a (clasa la care se obtin punctaje mari cu un nivel mai scazut de cunostinte).


Nu e deloc corect sa compari punctajele pe toate clasele (generatii diferite, subiecte diferite, este foarte relativ). Tinand cont de ceea ce s-a zis si, cel mai bun sistem ar fi cel de la gimnaziu (X participanti la fiecare clasa, sistem care de altfel a fost dovedit de-a lungul anilor ca unul foarte bun). Bine inteles multi o sa zica ca nu e corect pentru cei de clasa 9-a, lucru adevarat dar care poate fi rezolvat prin distribuirea locurilor pe clase in mod neuniform. La clasa a 9-a cei mai multi, la clasa a 10-a mai putini iar la clasele 11-12 si mai putin Bineinteles, gasirea unor coeficienti buni este destul de dificil, dar asa pare cel mai ok.
Memorat
veleandu
De-al casei
***

Karma: 155
Deconectat Deconectat

Mesaje: 132



Vezi Profilul
« Răspunde #14 : Aprilie 09, 2013, 23:30:34 »

Ar mai fi o idee buna sa se ia primi 30-40 pe fiecare clasa si apoi fiecare judet sa selecteze in plus participanti Smile
Asa macar nu o sa fie persoane care sunt pe locul 25 la general si nu prind oni-ul.

Eu am dat onibynet .. si am avut interfata.
Nu a luat mult sa generez un test random la o problema .. gfs.

La mine pe laptop folosesc VIM si am un procesor de 2.4
Nu stiu cum, dar la mine a luat cam 0.1 secunde si la ei pe site a luat TLE.
Limita era ori 0.5 ori 0.75 .. w/e
Ideea e ca nu sti exact timpii, si nu sti daca trebuie sa optimizezi sau nu, desi ai un test mare in fata.

O parsare nu e mult de scris .. but just sayin ..
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #15 : Aprilie 09, 2013, 23:31:51 »

Ar mai fi o idee buna sa se ia primi 30-40 pe fiecare clasa si apoi fiecare judet sa selecteze in plus participanti Smile
Asa macar nu o sa fie persoane care sunt pe locul 25 la general si nu prind oni-ul.

Eu am dat onibynet .. si am avut interfata.
Nu a luat mult sa generez un test random la o problema .. gfs.

La mine pe laptop folosesc VIM si am un procesor de 2.4
Nu stiu cum, dar la mine a luat cam 0.1 secunde si la ei pe site a luat TLE.
Limita era ori 0.5 ori 0.75 .. w/e
Ideea e ca nu sti exact timpii, si nu sti daca trebuie sa optimizezi sau nu, desi ai un test mare in fata.

O parsare nu e mult de scris .. but just sayin ..
Da, ar prinde bine o interfata care sa-ti permita sa rulezi teste si sa-ti spuna timpul si memoria. Stiu ca unele interfete folosite permit deja asta Smile
Memorat
harababurel
Client obisnuit
**

Karma: 23
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #16 : Aprilie 10, 2013, 00:13:10 »

Nu e deloc corect sa compari punctajele pe toate clasele (generatii diferite, subiecte diferite, este foarte relativ). Tinand cont de ceea ce s-a zis si, cel mai bun sistem ar fi cel de la gimnaziu (X participanti la fiecare clasa, sistem care de altfel a fost dovedit de-a lungul anilor ca unul foarte bun). Bine inteles multi o sa zica ca nu e corect pentru cei de clasa 9-a, lucru adevarat dar care poate fi rezolvat prin distribuirea locurilor pe clase in mod neuniform. La clasa a 9-a cei mai multi, la clasa a 10-a mai putini iar la clasele 11-12 si mai putin Bineinteles, gasirea unor coeficienti buni este destul de dificil, dar asa pare cel mai ok.

Ma refeream la situatia in care fiecare judet are un numar fix de locuri, iar distributia se face in cadrul judetului.

In cazul in care nu este impusa aceasta conditie, atunci mi se pare ok selectia primilor X participanti in clasamentul general la fiecare clasa, iar locurile libere din fiecare judet (in caz ca exista) sa fie ocupate prin decizia inspectoratului scolar.
In prezent, exista posibilitatea ca intr-un judet sa apara elevi care au lucrat mult in cursul anului si au crescut ca nivel, dar care sa nu poata participa toti la ONI datorita numarului redus de locuri ale judetului respectiv. Daca s-ar aplica sistemul recomandat de tine, ei ar avea posibilitatea sa fie clasati intre primii X in clasamentul general, aducand un surplus de locuri judetului din care fac parte (asa cum este si logic).

Sistemul curent de distribuire a locurilor / judete mi se pare cam ineficient, deoarece exista judete care au avut rezultate bune in trecut, au acumulat un numar mare de locuri, iar in prezent obtin in general rezultate slabe, si exista judete care au un numar mic de locuri, si elevi buni, dezavantajati de rezultatele generatiilor anterioare. Desigur, numarul de locuri se echilibreaza treptat, astfel incat sa reflecte rezultatele din trecutul apropiat, dar cred ca aceasta echilibrare are loc intr-un ritm prea lent.

Sistemul de selectie propus ar asocia fiecarui judet un numar fix de locuri, in functie de rezultatele anterioare, + un surplus care reflecta rezultatele obtinute la OJI in anul curent. In acest mod, chiar si un elev de clasa a 9-a poate aduce locuri in plus judetului din care face parte, fara sa fi participat in trecut la vreo nationala.
Memorat
Marius96
Strain


Karma: 35
Deconectat Deconectat

Mesaje: 16



Vezi Profilul
« Răspunde #17 : Aprilie 10, 2013, 00:21:16 »

Cred ca un evaluator local nu ar fi greu de facut.

De acord.

S-ar putea instala pe fiecare calculator o copie locala de infoarena sau o varianta mai simple a infoarenei.

Se poate mai simplu….

Eu sugerez un executabil caruia ii dai un fisier sursa, si apoi il compileaza si evalueaza si iti da rezultatul. De implementat e foarte simplu:

~/eval/Makefile
Cod:
%:%.c
gcc -lm -O2 -Wall -Wextra -pedantic -Wno-long-long -std=gnu99 -o [email protected] $< 2>&1

%:%.pas
fpc -O2 -veiwn -TLINUX -Xt [email protected] $< 2>&1
rm [email protected]

%:%.cxx
g++ -lm -O2 -Wall -Wextra -pedantic -Wno-long-long -fabi-version=0 -ftemplate-depth=100 -o [email protected] $< 2>&1

%:%.m
gcc -lm -O2 -Wall -Wextra -pedantic -o [email protected] $< 2>&1

clean:
rm -vf *.out sursa*

~/eval/eval
Cod:
#!/usr/bin/perl -w
use v5.14;
use File::Copy qw/cp/;

use constant TIME_LIMIT_SECONDS => 1;
use constant MEMORY_LIMIT_KBYTES => 100000;

sub error{
  system 'zenity', '--error', "--text=$_[0]";
  exit 1
}

##################################################

my $file=`zenity --file-selection` or error 'Nu ati ales fisierul';
my $extensie=`zenity --list --column x --column 'Limbaj' --hide-column=1 pas Pascal c C cxx C++ m Objective-C` or error 'Limbaj inexistent';
chomp $file;
chomp $extensie;
cp $file, "sursa.$extensie";

system ('make', 'sursa') == 0 or error "Compile error";
my @lines=`/usr/bin/time -v ./sursa 2>&1` or error "Non-zero exit status";
my ($memline) = grep /.*Maximum resident set size.*:/, @lines;
my $mem = ($memline =~ /: (.*)$/)[0];

my ($timeline) = grep /.*User time.*/, @lines;
my $time = ($timeline =~ /: (.*)$/)[0];

error 'Time limit exceeded' if $time > TIME_LIMIT_SECONDS;
error 'Memory limit exceeded' if $mem > MEMORY_LIMIT_KBYTES;

system ('./verificator') == 0 or error "Incorect!";

system 'zenity', '--info', "--text=Totul merge!\nTimp: $time secunde\nMemorie: $mem kbytes";

Pe langa astea doua fisiere, mai trebuie un fisier de input si un verificator, adica script/program care spune daca rezultatul e bun sau nu. Pentru programul aplusb, sugerez urmatoarele doua fisiere:

~/eval/aplusb.in
Cod:
1 2

~/eval/verificator
Cod:
#!/usr/bin/perl -w

use File::Slurp qw/read_file/;

exit !(int(scalar read_file 'aplusb.out') == 3)

Atentie: verificatorul nu trebuie sa fie inteligent, trebuie doar sa stie sa raspunda corect pe inputul de mai sus.

Dependencies: zenity si File::Slurp. Pe un sistem debian se pot instala prin comanda:
Cod:
aptitude install zenity libfile-slurp-perl

Desigur, este nevoie si de cateva din compilatoarele gcc (pentru C), g++ (pentru C++), fpc (pentru Pascal), gobjc (pentru Objective-C).

Pentru cei care nu au chef de copy-paste, puteti lua un tar cu cele patru fisiere de mai sus de la http://ieval.ro/~marius/eval.tar. Rulati fisierul eval pentru a evalua o sursa la aplusb.

Edit: Am modificat evaluatorul sa poata evalua mai multe probleme, linkul de mai sus are varianta noua.

Evaluatorul de mai sus nu opreste programul daca este depasit timpul de executie sau memoria, ci doar raporteaza la sfarsit daca programul a depasit timpul/memoria. Fiind un evaluator local, este in interesul utilizatorului sa nu "evalueze" un infinite loop.

Implementarea acestui evaluator pe un sistem Windows este lasat ca un exercitiu pentru cititor.
« Ultima modificare: Aprilie 10, 2013, 11:41:57 de către Marius Gavrilescu » Memorat
freak93
Echipa infoarena
Nu mai tace
*****

Karma: 341
Deconectat Deconectat

Mesaje: 804



Vezi Profilul
« Răspunde #18 : Aprilie 10, 2013, 08:47:56 »

V-ati gandit ca "evaluatorul"/"verificatorul" trebuie instalate inaintea fiecarei probe(pentru ca sunt alte probleme)? Asta e genul de munca care ocupa prea mult timp si pentru care sunt prea putini oameni.
Memorat
Marius96
Strain


Karma: 35
Deconectat Deconectat

Mesaje: 16



Vezi Profilul
« Răspunde #19 : Aprilie 10, 2013, 09:40:16 »

V-ati gandit ca "evaluatorul"/"verificatorul" trebuie instalate inaintea fiecarei probe(pentru ca sunt alte probleme)? Asta e genul de munca care ocupa prea mult timp si pentru care sunt prea putini oameni.

Se poate face la salvarea surselor: cei care salveaza sursele sa aiba pe stick un script care sa instaleze evaluatorul pentru proba urmatoare.

O alta varianta ar fi sa fie evaluatorul preloaded cu toate problemele de la toate probele. Participantul nu poate vedea testele, si sa trimita surse la o problema la care nu stie enunt/input/output nu il poate ajuta cu nimic.
« Ultima modificare: Aprilie 10, 2013, 09:49:57 de către Marius Gavrilescu » Memorat
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #20 : Aprilie 10, 2013, 12:41:22 »

O sa postez o parere potential nepopulara in randul tuturor oamenilor care posteaza aici atat pentru a promova discutia ambelor parti cat si pentru a expune un alt punct de vedere.

Desi inteleg ca ar fi foarte frumos sa avem evaluator cu feedback, probabil mi-ar placea sa-l vad si acum la ONI si in urma cu cativa ani as fi fost la fel de pornit ca si voi pentru ca si eu am facut astfel de greseli, am ajuns sa realizez urmatorul fapt.

Atentia la detalii si capacitatea de a evita astfel de greseli stupide sunt caracteristici esentiale atat pentru un olimpic cat si pentru un inginer de inalta clasa (software or otherwise). Mi se pare ca evitarea greselilor respective tine mai mult de responsabilitatea fiecaruia de a duce ceva pana la capat decat de lipsa de atentie. Exista lume care considera ca rezolvarea problemei e tot ce conteaza pentru ca e singura parte din concursuri care e dificila si ca restul detaliilor sunt minore. Din pacate, in domenii practice, cum ar fi informatica sau ingineria, majoritatea esecurilor se intampla din cauza detaliilor minore care sunt ignorate sub pretextul 'sigur am facut bine asta, nu are rost sa verific'.

In viata reala nimeni nu o sa te tina de mana, sa faca teste pentru tine si sa se asigure ca respecti tot ce ti s-a cerut. Tu trebuie sa te asiguri ca munca pe care o faci e corespunzatoare si pare bine sa te obisnuiesti cu ideea asta mai devreme decat mai tarziu. Cu cat oamenii sunt tinuti mai mult de mana si din ce in ce mai multe tipuri de greseli devin imposibile, cu atat oamenii uita ca trebuie sa evite greselile de la inceput. In cazul asta, e o lista clara, restransa, de lucruri care trebuie verificate odata ce ai declarat o problema 'gata' si nu-ti ia mai mult de 5 minute per problema sa treci prin ea. De ce sa alegi sa nu faci o verificare care ia 5 minute pentru a evita o potentiala catastrofa care ori e ireparabila, ori iti ia ore/zile intregi sa o repari.
Memorat
GavrilaVlad
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 214



Vezi Profilul
« Răspunde #21 : Aprilie 10, 2013, 13:26:28 »

+1 pentru postul lui Bogdan.

Si eu am facut nenumarate greseli stupide in concursuri, care m-au costat puncte mai mult sau mai putin importante. Spre exemplu, am subdimensionat (grav) un vector la problema smart de la lotul din 2011, si asa am pierdut 100 de puncte; la CEOI 2011 am inversat indicii la o dinamica de tip "stramosi", iar asta e posibil sa ma fi costat 100 de puncte (nu sunt sigur ca restul programului era corect), diferenta de la bronz la aur. As fi descoperit cu usurinta aceste greseli daca aveam feedback pe un test mai mare.

Insa, in loc sa ma acuz sistemul de concurs, am acceptat faptul ca si buselile stupide fac parte din concurs si am incercat, pe cat posibil, sa le evit: verific numele problemelor, fisierele din care scriu / citesc, limitele vectorilor, calculez memoria. Nu dureaza mai mult de 5 minute pe problema, iar din cateva ore de concurs eu zic ca-ti poti rezerva 15 minute la final pentru a face aceste ultime verificari.

Rezultatul? La baraj la ONI 2013 nu am pierdut 80 de puncte pe "cntgcd", pentru ca am descoperit la timp ca o denumisem atat pe ea, cat si fisierele, "gcdcnt", iar pe interactiva am citit cu atentie enuntul si modul de interactiune si asa am observat ca trebuia sa citesc acel 1 de confirmare a raspunsului corect.

Mai mult, la concursurile la care am avut feedback (IOI-urile si CEOI 2013) am remarcat ca nu am mai depins atat de mult de el: verificand toate cele de mai sus si codand mai atent, pe multe din probleme am avut nevoie de maxim o submisie pentru a obtine punctajul dorit (fie el de 100 sau asociat unui brut).

In concluzie, consider ca mentinerea sistemului actual de la ONI / baraj este benefic concurentilor, care au ocazia sa invete din astfel de greseli cum sa evite bugurile stupide, astfel incat o investitie in sisteme de retea (care, apropo, ar putea duce la mai multe cazuri de fraudare a concursului) nu ar fi justificata.
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #22 : Aprilie 10, 2013, 13:37:13 »

Eu nu vreau sa dau vina pe sistem pentru greselile mele, ci doar vreau sa se imbunatateasca ceva.
Sunt partial de acord cu voi. Totusi voi aveti 8-9 ani de experienta si ati avut timp sa invatati din greseli. Mie mi se pare timpul de concurs destul de scurt si nu imi permit sa-mi aloc 15-20 minute pentru fiecare problema, asta m-ar costa o ora.
In plus in lumea reala ai timp suficient, nu 4-5 ore pentru a rezolva bugurile.

Nu vreau sa par ironic, chiar sunt curios de ce la concursurile internationale si la acm ai feedback ?
Memorat
GavrilaVlad
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 214



Vezi Profilul
« Răspunde #23 : Aprilie 10, 2013, 14:08:24 »

Citat
In cazul asta, e o lista clara, restransa, de lucruri care trebuie verificate odata ce ai declarat o problema 'gata' si nu-ti ia mai mult de 5 minute per problema sa treci prin ea.

Citat
Nu dureaza mai mult de 5 minute pe problema, iar din cateva ore de concurs eu zic ca-ti poti rezerva 15 minute la final pentru a face aceste ultime verificari.

Nu e nicidecum vorba de o ora, dupa cum se vede in mesajele noastre.

De ce ai feedback la internationale si acm? Din doua motive diferite, cred eu:

1. Pentru Internationala: Scopul interului este si de a incuraja tarile sa-si dezvolte competitii interne / sa promoveze pe plan international informatica in randul elevilor de liceu. Astfel, interul isi cam rateaza obiectivul daca elevii din tarile emergente se intorc in mod repetat cu punctaje sub 20-30 de puncte. Sistemul de feedback a venit astfel spre a-i ajuta, corelat cu impartirea pe subtask-uri. Noi, in schimb, avem nenumarate alte moduri de a incuraja elevii sa invete serios informatica: concursurile de pe infoarena, fazele premergatoare olimpiadei nationale, concursurile inter-judetene.

2. Pentru ACM: Aici numarul de probleme este de trei ori mai mare decat cel de la o zi normala de concurs, iar timpul este acelasi (5 ore). Astfel, consider ca se opteaza pentru feedback total pentru ca participantii sa nu mai piarda timpul cu brut / eval pe fiecare problema. In schimb, tot se incurajeaza ca oamenii sa faca verificarile de care am spus, deoarece exista acea penalizare de timp destul de dureroasa pentru fiecare submisie gresita.
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #24 : Aprilie 10, 2013, 14:25:18 »

Citat
Nu dureaza mai mult de 5 minute pe problema, iar din cateva ore de concurs eu zic ca-ti poti rezerva 15 minute la final pentru a face aceste ultime verificari.
Eu nu pot baga generator + brut + evaluator in 5 minute si sa fiu si atent la toate detaliile.
« Ultima modificare: Aprilie 10, 2013, 14:30:24 de către Petru Trimbitas » Memorat
Pagini: [1] 2 3   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines