Upute natjecateljima

 

Svi ulazni podaci koje programi trebaju čitati nalaze se u ulaznim datotekama, a sve izlazne podatke programi zapisuju u izlazne datoteke. To su obične tekstualne datoteke u kojima se kao separator između ulaznih podataka pojavljuje razmak (space) i prelazak u novi red ('carriage return' + 'new line').

Ulaznu datoteku vaš program mora tražiti u tekućem (current) direktoriju, a izlaznu datoteku mora zapisati također u tekući direktorij. Specificiranje relativnih ili apsolutnih putanja u vašem programu će vjerojatno rezultirati nepotrebnim gubitkom bodova.

Program ne smije čekati ni na kakav ulaz s tipkovnice. Ukoliko će program čekati makar i na običan pritisak na neku tipku, broj dobivenih bodova za taj test podatak će biti jednak 0. Isti broj bodova će dobiti program kod kojeg se prilikom izvršavanja pojavi bilo koji 'runtime error'.

Sav ispis na ekran tijekom izvršavanja programa će biti ignoriran. Preporučujemo da eventualne 'debug' informacije koje ste ispisivali na ekran tijekom rješavanja zadatka u završnoj verziji programa izbacite kako bi ubrzali vaš program. Također obratite pažnju da se pravilnim izborom 'compiler' i 'linker' opcija ponekad može značajno ubrzati izvršavanje vašeg programa.

Da bi program koji rješava problem iz nekog zadatka dobio maksimalni broj bodova, primijenjeni algoritam mora biti valjan i efikasan tj. brz. Test podaci su unaprijed osmišljeni i koncipirani tako da će programi koji koriste neke manje efikasne, ali valjane algoritme, također dobiti određeni broj bodova (npr. od ukupno 50 bodova, jako loš i spor algoritam će dobiti npr. 10 bodova, dok će dobar algoritam, ali ne i najbolji dobiti npr. 35 bodova). Programi koji će raditi jako brzo za sve test podatke, ali neće davati točne rezultate, naravno, neće donositi bodove. Znači, valjanost algoritma je na prvom mjestu, a brzina izvršavanja na drugom.

Prilikom osmišljavanja algoritma obratite pažnju na ograničenje veličine ulaznih podataka jer je ono sastavni dio zadatka.

U tekstu svakog zadatka naći ćete nekoliko test primjera koji vam mogu pomoći da bolje shvatite zadatak. Međutim, ako vaš program radi ispravno za zadane test primjere to još uvijek nije garancija niti da je vaš program ispravan niti da je dovoljno efikasan.

Prilikom rješavanja zadataka preporučuje se korištenje olovke i papira za skiciranje i razradu algoritma, a za vrijeme samog kodiranja snimajte vaša rješenja često i na hard disk i na disketu.

Želimo vam puno znanja, koncentracije i sreće na ovom i daljnjim natjecanjima.

VAŽNO !

Zbog automatske evaluacije vaših rješenja, program treba regularno završiti svoje izvođenje.

Program u Pascal-u treba se izvršiti do kraja tj. do 'end.' ili ako za završetak izvršavanja koristite naredbu 'halt', treba ju koristiti bez parametara ili kao 'halt(0)'.

Program u C-u treba se izvršiti do naredbe 'return 0' u funkciji 'main' koja treba biti deklarirana kao 'int main(void)' ili ako za završetak izvršavanja koristite naredbu 'exit', treba ju koristiti kao 'exit(0)'.