22. HRVATSKA INFORMATIČKA OLIMPIJADA
HIO 2016
Fakultet elektrotehnike i računarstva, Zagreb
subota, 2. travnja 2016.
PRAVILA
Pozivanje učenika
Na 22. hrvatsku informatičku olimpijadu pozivaju se učenici srednjih škola Republike Hrvatske temeljem
rezultata ovogodišnjeg Hrvatskog otvorenog natjecanja u informatici (za svakog natjecatelja vrednuje se
6 najboljih od 7 ukupno održanih kola), kao i temeljem rezultata Državnog natjecanja iz informatike
(kategorija "Primjena algoritama SŠ").
Načelno, temeljem HONI rezultata poziva se 6 do 8 učenika I. podskupine (1. i 2. razred) te
10 do 12 učenika II. podskupine (3. i 4. razred), dok se temeljem rezultata Državnog natjecanja iz informatike također poziva
6 do 8 učenika I. podskupine (1. i 2. razred) te 10 do 12 učenika II. podskupine (3. i 4. razred).
Dodatno, u obzir se mogu uzeti i rezultati natjecanja koja provode udruge HSIN-a uz predočenu
potpunu natjecateljsku dokumentaciju (povjerenstva, pravila, zadaci s rješenjima i rang liste natjecatelja).
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 Međunarodnoj informatičkoj olimpijadi, bez obzira na
rezultate na ovogodišnjem HONI i Državnom natjecanju iz informatike. Molbu za direktno pozivanje na HIO
učenik predaje Znanstvenom povjerenstvu, u pisanom obliku, najkasnije u četvrtak, 17. ožujka 2016., 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, 18. ožujka 2016.,
na web stranicama HSIN-a, a eventualne žalbe na odluku se, najkasnije do nedjelje, 20. ožujka 2016.,
podnose u pisanom obliku Hrvatskom savezu informatičara.
Radno okruženje i provedba natjecanja
Natjecanje se održava u trajanju od 5 sati pri čemu se rješavaju 3-5 problemskih zadataka,
a dopušteni programski jezici za rješavanje zadataka su Python, Pascal, C i C++. Sva natjecateljska računala
bit će opremljena isključivo Linux operacijskim sustavom. Prije početka HIO 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:
-
Ubuntu 14.04
-
web preglednik: Firefox, Chromium
-
editori: joe, vim, emacs, gedit, nano, scite, codeblocks, geany, lazarus, idle
-
kompajleri: gcc/g++ 4.8, Free Pascal 2.6
-
interpreteri: Python 2.7, Python 3.4
-
debuggeri: gdb, ddd
-
STL dokumentacija, FP 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 tipkovnica.
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 na Olimpijadi 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.
-
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).
-
INTERAKTIVAN ZADATAK (REACTIVE) - rješenje zadatka je izvorna datoteka programa koji obavlja dijalog
sa suprotstavljenim programom izrađenim od strane organizatora. Pri tome natjecateljev program koristi
standardni ulaz i izlaz za komunikaciju sa suprotstavljenim programom.
-
ZADATAK SAMO S IZLAZOM (OUTPUT-ONLY) - rješenje zadatka je skup datoteka koje sadrže izračunate podatke.
Natjecatelj isporučuje zip ili tgz arhivu koja sadrži te datoteke ili barem neke od njih.
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.
Ispisivanje
Ispisivati se mogu samo tekstualne datoteke. Nakon zahtjeva natjecatelja za ispisom preko servera,
član tehničkog osoblja dostavit će ispisane materijale. Natjecatelj ne smije sam napuštati
radno mjesto kako bi uzeo ispisane materijale. Ograničenja ispisa su 20 stranica i 100 KB.
Slanje
Natjecatelj rješenja šalje na evaluator putem Web preglednika. Programski jezik koji je koristio
natjecatelj evaluator određuje pomoću ekstenzije (*.py, *.pas; *.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
posljednje poslano rješenje za taj zadatak.
Testiranje
Natjecatelj može testirati svoja rješenja u evaluatorskom okruženju koristeći sučelje za testiranje.
Prilikom testiranja, natjecatelj mora poslati rješenje i ulazne podatke koje želi testirati.
Ograničenje ulaznih podataka koje natjecatelj treba poštovati, nalazit će se na sustavu.
Nakon izvršavanja, sustav će ispisati vrijeme izvođenja, izlazne podatke i eventualne greške.
Međutim, podaci o točnosti izvođenja neće se ispisati.
Spremanje
Natjecatelji imaju mogućnosti spremiti kopije svoje datoteka tijekom natjecanja na evaluator.
Natjecatelj može napraviti do 100 kopija, a veličina jedne tako spremljene datoteke
ne smije prelaziti 1 MB. Ukupna veličina svih spremljenih datoteka na evaluatoru ne smije prelaziti 10 MB.
Prošireni rezultati
Nakon slanja rješenja na evaluator, sustav će natjecatelju dojaviti rezultat izvođenja na primjerima
test podataka zadanim u tekstu zadatka. U nekim slučajevima, autori zadataka mogu se odlučiti
natjecateljima ponuditi "proširene rezultate". Na zadacima na kojima se nudi mogućnost proširenih
rezultata natjecatelji će uz rezultat izvođenja na primjerima test podataka dobiti i združene rezultate
izvođenja na nekim test podacima. Rezultati će biti združeni u nekoliko kategorija
(točno, krivo, vremensko ograničenje) gdje će za svaku kategoriju pisati broj rezultata koji
se nalaze u toj kategoriji. Moguće je ograničenje na broj slanja po zadatku na kojima se nude prošireni rezultati.
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
-
Pascal: fpc -O2 -XS xyz.pas
-
C: gcc -o xyz xyz.c -std=c99 -O2 -s -static -lm
-
C++: g++ -o xyz xyz.cpp -O2 -s -static -lm
-
C++11: g++ -o xyz xyz.cpp -std=c++11 -O2 -s -static -lm
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 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.
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, 7. ožujka 2016.
Predsjednik Znanstvenog povjerenstva
doc. dr. sc. Ante Đerek, FER
Za Hrvatski savez informatičara
Krešimir Malnar, tajnik