7. JUNIORSKA HRVATSKA INFORMATIČKA OLIMPIJADA
JHIO 2018
Visoko učilište Algebra, Ilica 242, Zagreb
subota, 24. ožujka 2018.
PRAVILA
Pozivanje učenika
Na 7. juniorsku hrvatsku informatičku olimpijadu pozivaju se učenici osnovnih škola Republike Hrvatske
temeljem rezultata Hrvatskog otvorenog natjecanja u informatici 2017./2018. (za svakog natjecatelja
vrednuje se 6 najboljih od 7 ukupno održanih kola), kao i temeljem rezultata
Državnog natjecanja iz informatike 2018 (kategorija "Primjena algoritama OŠ").
Načelno, temeljem HONI rezultata poziva se do 4 učenika I. podskupine (do 6. razreda) te
do 6 učenika II. podskupine (7. i 8. razred), dok se temeljem rezultata Državnog natjecanja poziva
do 2 učenika 5. razreda, do 2 učenika 6. razreda, do 3 učenika 7. razreda i do 3 učenika 8. razreda.
Znanstveno povjerenstvo, u suradnji s Povjerenstvom za provedbu i evaluaciju i odgovornim organizatorom
Hrvatskim savezom informatičara, donosi prijedlog Odluke o pozvanim učenicima. U prijedlog se mogu uvrstiti
i učenici koji su ranijih godina sudjelovali na Europskoj juniorskoj informatičkoj olimpijadi, bez obzira na
rezultate na ovogodišnjem HONI i Državnom natjecanju. Molbu za direktno pozivanje na JHIO
takav učenik predaje Znanstvenom povjerenstvu, u pisanom obliku, najkasnije u četvrtak, 15. ožujka 2018., do 20:00.
Odluku o pozvanim učenicima, uzimajući u obzir tehničke, financijske i organizacijske mogućnosti,
donosi Izvršni odbor Hrvatskog saveza informatičara. Odluka se objavljuje u petak, 16. ožujka 2018.,
na web stranicama HSIN-a, a eventualne žalbe na odluku se, najkasnije do nedjelje, 18. ožujka 2018.,
podnose u pisanom obliku Hrvatskom savezu informatičara.
Izvršni odbor Hrvatskog saveza informatičara će razmotriti sve žalbe i odgovoriti na njih
najkasnije do utorka, 20. ožujka 2018., čime popis pozvanih učenika postaje konačan.
Radno okruženje i provedba natjecanja
Natjecanje se održava u trajanju od 4 sata pri čemu se rješava 3-5 problemskih zadataka,
a dopušteni programski jezici za rješavanje zadataka su Python i C/C++. Sva natjecateljska računala
bit će opremljena isključivo Linux operacijskim sustavom. Prije početka JHIO natjecanja, održat će se
probno natjecanje u trajanju od jednog sata s 1-2 zadatka, radi prilagođavanja učenika radnom okruženju.
Na računalima će biti instaliran sljedeći software (moguće su manje izmjene):
-
Ubuntu 16.04
-
web preglednik: Firefox, Chromium
-
editori: joe, vim, emacs, gedit, nano, scite, codeblocks, geany, lazarus, idle3
-
kompajleri: gcc/g++ 4.9
-
interpreteri: Python 2.7, Python 3.4
-
debuggeri: gdb, ddd
-
STL dokumentacija, CPP reference, Python 2/3 dokumentacija
Za vrijeme natjecanja, natjecateljima će biti dostupan papir i pisaći pribor. U slučaju da natjecatelj
želi koristiti vlastitu tipkovnicu, treba je predati tehničkom osoblju na provjeru prije početka probnog natjecanja.
Dopušteno je korištenje samo jednostavnih USB tipkovnica. Bežične tipkovnice nisu dozvoljene.
Natjecatelj u dvoranu za natjecanje ne smije unositi nikakve elektroničke uređaje, medije za pohranu podataka,
uređaje za komunikaciju, knjige, priručnike ili bilo kakav tiskani materijal.
Svaki natjecatelj će imati unaprijed određeno radno mjesto koje će biti označeno brojem. Nakon smještaja
na radno mjesto, natjecatelj će čekati službeni početak natjecanja i pri tom ne smije dirati računalo,
tipkovnicu, miša ili bilo koji drugi natjecateljski materijal.
Zadaci
Svi zadaci dizajnirani su da budu algoritamske prirode. U nekim zadacima efikasnost,
tj. brzina algoritma ima najveći udio u pisanju zadataka. Test podaci su unaprijed osmišljeni i koncipirani
na način da će programi koji koriste neke manje efikasne, ali valjane algoritme, također dobiti određeni
broj bodova. Test podaci bit će prilagođeni tako da razlikuju različite nivoe efikasnosti unutar zadanih ograničenja.
Stoga, natjecatelj ima mogućnost pokušaja rješavanja zadataka s laganim test primjerima iako ne mora znati
riješiti zadatak za složene primjere. Prilikom rješavanja zadataka, natjecatelj smije koristiti olovku i
papir za skiciranje i razradu algoritma.
Na ovom natjecanju jedini tip zadataka koji se može pojaviti je:
-
STANDARDAN ZADATAK (BATCH) - rješenje zadatka je izvorna datoteka (source) programa koji čita
zadane podatke iz standardnog ulaza (stdin) i ispisuje traženi rezultat na standardni izlaz (stdout).
Ostali tipovi zadataka koji se ponekad pojavljuju na informatičkim natjecanjima ("interaktivan zadatak"
odnosno "zadatak samo s izlazom") se na ovom natjecanju neće pojaviti.
Za svaki zadatak biti će naznačeno memorijsko ograničenje koje se odnosi na sveukupnu zauzetost memorije
(izvršni kôd, stack, heap...). Također, za svaki zadatak zadano je i vremensko ograničenje po pojedinom test podatku.
Ulazni i izlazni podaci sastoje se od jednog ili više redova koji završavaju s end-of-line znakom,
uključujući i zadnji red. Svaki red sadrži niz ispisnih znakova od ASCII-32 do ASCII-126.
Format pojedinih ulaznih i izlaznih podataka bit će definiran unutar zadatka.
Upiti o zadacima
Tijekom natjecanja, natjecatelj ima mogućnost traženja pojašnjenja nekih elemenata zadatka.
Pitanja se predaju putem servera preko forme predviđene za upite.
Znanstveno povjerenstvo nakon primitka pitanja dat će jedan od sljedećih odgovora:
-
"DA"
-
"NE"
-
"BEZ KOMENTARA"
-
"PROČITATI PONOVO TEKST ZADATKA"
Poslužitelj / evaluator
Natjecanje se odvija u distribuiranom sustavu gdje su natjecateljska računala povezana
u lokalnu mrežu s natjecateljskim poslužiteljem / evaluatorom. Natjecateljsko računalo ima
pristup određenim servisima koje nudi natjecateljski poslužitelj: sustav za natjecanje,
pristup dokumentaciji te pristup pisaču. Natjecatelj rješava zadatak
na svom računalu te rješenje šalje na evaluator.
Natjecateljska računala neće biti povezana međusobno niti na Internet. Svaki pokušaj
natjecatelja za uspostavom takve veze, smatrat će se varanjem, te mogućom diskvalifikacijom.
U slučaju problema rada mreže, natjecatelj ne smije sam pokušavati otkloniti kvar,
već mora obavezno pozvati pripadnika tehničkog osoblja.
Slanje
Natjecatelj rješenja šalje na evaluator putem Web preglednika. Programski jezik koji je koristio
natjecatelj evaluator određuje pomoću ekstenzije (*.py, *.c; *.cpp; *.cc; *.cxx) ili odabirom
programskog jezika iz padajućeg izbornika. Rješenja mogu biti poslana na evaluator za vrijeme trajanja
cijelog natjecanja. Ako natjecatelj pošalje više od jednog rješenja za isti zadatak, kroz sučelje "submit"
ima mogućnost odabira rješenja koje će se u konačnici vrednovati. Ako to ne učini, bodovat će se
ono rješenje za taj zadatak koje je ostvarilo najveći broj bodova.
Znanstveno povjerenstvo može ograničiti ukupan broj dozvoljenih slanja rješenja za određeni zadatak.
Završetak natjecanja
15 minuta, 5 minuta i 1 minutu prije završetka natjecanja natjecatelji će biti obaviješteni o preostalom vremenu.
Po završetku natjecanja, natjecatelj mora odmah prekinuti sve aktivnosti i čekati za stolom
bez diranja računala, tipkovnice, miša i ostalih natjecateljskih materijala.
Prevođenje rješenja
Rješenja poslana na sustav prevodit će se sa sljedećim argumentima:
-
Python 2: Python 2.7
-
Python 3: Python 3.4
-
C: gcc -o xyz xyz.c -O2 -lm -DONLINE_JUDGE -Wall
-
C++: g++ -o xyz xyz.cpp -O2 -lm -DONLINE_JUDGE -Wall
-
C++11: g++ -o xyz xyz.cpp -std=c++11 -O2 -lm -DONLINE_JUDGE -Wall
Ocjenjivanje
Svaki zadatak ima nekoliko grupa od jednog ili više test primjera. Svaka grupa nosi određen broj bodova,
a bodovi za tu grupu dobit će se ako i samo ako svaki test primjer u njoj bude točno riješen
(odnosno djelomično rješen u slučaju zadatka s parcijalnim bodovanjem) i pritom poštuje zadana
vremenska i memorijska ograničenja iz teksta zadatka. Broj bodova na zadatku bit će zbroj bodova
po grupama test primjera tog zadatka. Ukupni broj bodova biti će zbroj bodova pojedinih zadataka.
Bodovat će se samo oni zadaci koji su poslani i zadovoljili evaluaciju od strane evaluatora.
Prošireni rezultati
Nakon slanja rješenja na evaluator, sustav će natjecatelju dojaviti detaljan rezultat izvođenja na primjerima
test podataka zadanim u tekstu zadatka. Dodatno, evaluator će natjecatelju dojaviti broj osvojenih bodova
za svaku pojedinu grupu test primjera, ali ne nužno i detaljne rezultate za pojedine test primjere iz grupe.
Pravila ponašanja i varanje
Svaki natjecatelj koji ometa druge, oštećuje opremu, pristupa drugim računalima,
komunicira s drugim natjecateljima ili prepisuje tuđi kod podložan je diskvalifikaciji s natjecanja.
Varanjem će se smatrati ako natjecateljev program pokazuje sljedeće karakteristike:
-
pristupa mreži
-
stvaranje novih procesa (fork())
-
otvara i kreira datoteke
-
napada ili kompromitira sigurnost sustava ili servera
-
izvršava druge programe
-
mijenja prava pristupa datotekama
-
iščitava informacije datotečnog sustava
-
poziva sistemske procedure koje nisu vezane uz rješavanje zadataka
Žalbe
Nakon završetka natjecanja i objavljivanja rezultata, moguće je u roku od 30 minuta podnijeti
žalbu pisanim putem. Znanstveno povjerenstvo će razmotriti žalbu i ako je ustanovljena greška u
sustavu evaluacije rješenja, sva predana rješenja za taj zadatak će se ponovo reevaluirati.
Reevaluirana rješenja odnosit će se na sve natjecatelje.
Nagrade i priznanja
Svi sudionici će dobiti priznanja za sudjelovanje, a najbolji medalje, diplome i nagrade.
U Zagrebu, ožujak 2018.
Predsjednik Znanstvenog povjerenstva
Nikola Dmitrović, prof. savjetnik, XV. gimnazija
Za Hrvatski savez informatičara
Krešimir Malnar, tajnik