Udruga darovitih informatičara Rijeke
objavljuje

PROPOZICIJE STUDENTSKOG INFORMATIČKOG NATJECANJA

sin(2005).open

"Guess"

.natjecanje

Studentsko informatičko natjecanje (SIN) programersko je natjecanje putem Interneta u organizaciji Udruge darovitih informatičara Rijeke (DIR). Ove se godine održava po šesti put.

Nastavak "OPEN" označava mogućnost sudjelovanja SVIH zainteresiranih, uključujući osnovce, srednjoškolce i studente iz čitave Republike Hrvatske, bez obzira na članstvo u Udruzi.

Natjecatelji se nisu dužni prethodno prijaviti. Ne postoji ni kotizacija. Dovoljno je upoznati se sa ovim propozicijama i predati rješenje u roku.

Natjecanje je otvoreno od 07. studenoga do 30. studenoga 2005. godine. U tom periodu moguće je predati rješenja. Rješenja predana nakon isteka navedenog perioda neće se uzimati u obzir.

 

.zadatak

.problem

Rotkvica se zaželjela drevne razbibrige pogađanja zamišljenog broja. Odabrala je jedan cijeli broj u intervalu od A do B (uzmimo da je to broj X), (1 <= A <= X <= B <= 100 000 000). Vaš zadatak je da navodeći brojeve u zadanom intervalu, u što manje pokušaja odredite broj X. Da bi Vam bilo lakše pogoditi navedeni broj, Rotkvica je odabrala i dodatni broj Y, koji služi kako bi Vas "navodio" na broj X, i to na slijedeći način:
- ako pri "pogađanju" broja Vi odaberete broj koji se nalazi u intervalu [X-Y, X+Y], a nije broj X, onda će Vam Rotkvica odgovoriti GORI
-
ako odaberete broj u intervalima [X-2Y, X-Y) ili (X+Y, X+2Y] onda će Vam Rotkvica odgovoriti VRUCE (ne uključujući brojeve X-Y i X+Y, jer su oni u gornjem intervalu)
-
ako odaberete broj u intervalima [X-3Y, X-2Y) ili (X+2Y, X+3Y] onda će Vam Rotkvica odgovoriti TOPLO (ne uključujući brojeve X-2Y i X+2Y, jer su oni u gornjem intervalu)
-
ako odaberete broj X, onda će Vam odgovoriti POGODAK
-
za sve ostale brojeve, Rotkvica će Vam odgovoriti HLADNO.

Očito je da Vi tokom igre ne znate niti broj X, niti broj Y, već na osnovu upita trebate "pogoditi" o kojim se brojevima radi.

Za potrebe igre, Rotkvica je napravila program GUESS.EXE koji radi prema gore priloženim uputama (možete ga preuzeti ovdje).

 

.napomene

- Program GUESS.EXE sve izlaze vezane uz program zapisuje u GUESS.TXT.
- Bilo kakav ispis na zaslon računala će se prilikom testiranja ignorirati.
- Dozvoljeno je korištenje privremenih datoteka prilikom određivanja rješenja zadatka
- Prilikom pokretanja GUESS.EXE, program generira određene privremene datoteke - nemojte ih brisati niti modificirati. Testni program prema kojem će se dodjeljivati bodovi neće izgledati identično ovom programu.
- Ako prilikom pozivanja GUESS.EXE ne upišete kao parametar broj iz intervala [A, B] ili riječ "INIT" tada će program vratiti poruku: GRESKA.

 

.primjeri
- ovi primjeri ne predstavljaju najbolji mogući put do rješenja, već samo služe za prikaz logike igre i pogađanja broja.

1. primjer

POZIV PROGRAMA: ODGOVOR :
(GUESS.TXT)
OBJAŠNJENJE:
GUESS.EXE INIT 23 40 Ovim pozivom generira se novi broj X, a vraća se interval unutar kojeg se broj nalazi
GUESS.EXE 35 HLADNO Broj je udaljeniji od 3*Y
GUESS.EXE 70 GRESKA Broj nije u intervalu [23, 40]
GUESS.EXE 34 TOPLO  
GUESS.EXE 33 TOPLO  
GUESS.EXE 32 VRUCE  
GUESS.EXE 29 GORI  
GUESS.EXE 28 POGODAK Sada vidimo da je odabrani broj X bio broj 28, a da je Y u ovoj igri bio 2


2. primjer

POZIV PROGRAMA: ODGOVOR (GUESS.TXT):
GUESS.EXE INIT 1 80
GUESS.EXE 50 HLADNO
GUESS.EXE 20 HLADNO
GUESS.EXE 70 GORI
GUESS.EXE 80 TOPLO
GUESS.EXE 75 GORI
GUESS.EXE 72 GORI
GUESS.EXE 73 POGODAK

Objašnjenje 2. primjera:
X = 73
70, 71, 72, 74, 75, 76 - GORI
67, 68, 69, 77, 78, 79 - VRUCE
64, 65, 66, 80 - TOPLO
1-63 - HLADNO

 

.naputak

Zadaci se moraju riješiti u jednom od navedenih programskih jezika: BASIC, Pascal, C/C++, Java.

Rješenje je potrebno OBRAZLOŽITI u sklopu dokumentacije. Poželjno je, ali ne i obvezatno, priložiti dijagram toka. Postojanje i cjelovitost dokumentacije uzimat će se u obzir prilikom bodovanja.

Rješenja će se bodovati prema sljedećim kriterijima:

1. točnost rješenja (broj bodova dobivenih testiranjem)
2. brzina izvođenja programa (brže je bolje)
3. dokumentiranost (kako glavnog algoritma, uključno s dijagramom toka, tako i predanog programa u cjelosti)
4. urednost izvornog koda (čitljivost, originalnost...)

Testni primjeri imaju vremenska ograničenja. Ukoliko program ne generira rješenje u predviđenom roku, prekida se njegovo izvršenje. Tipično vremensko ograničenje po svakom testnom primjeru (odnosno, izvršavanju testnog primjera) iznosi 30 sekundi na računalu Athlon64 3000+, sa 512MB RAMa.

 

.predajaRješenja

Rješenje se predaje POD ŠIFROM (koju je potrebno navesti u subjectu poruke), kao dio komprimirane datoteke "SIN2005.zip" koja mora sadržavati:

1. rješenje u izvršnom (.exe) obliku (za DOS ili Windows platformu), snimljeno pod imenom "pogodi.exe".
2. izvorni kod rješenja (koji mora odgovarati izvršnoj verziji!).
3. dokumentaciju (čitljivu u Internet Exploreru)
4. "README.txt" datoteku koja mora sadržavati:
4.1 ime i prezime natjecatelja
4.2 punu adresu
4.3 godinu rođenja
4.4 telefonski broj

Rješenje se predaju u privitku (attachment) isključivo e-mailom, na adresu sin@dir.hr, uz ograničenje veličine privitka na 10 MB.

Broj predanih rješenja po pojedinom natjecatelju NIJE ograničen.

 

.nagrade

Dodjeljuje se novčana nagrada u netto iznosu od 1.000,00 kn (slovima: tisuću kuna) prema odluci stručne komisije. Nagradu osvaja natjecatelj koji na testiranju sakupi najviše bodova. DIR zadržava pravo obustave dodjele nagrade ukoliko niti jedno od prispjelih rješenja ne zadovolji minimalne selekcijske kriterije.

Stručna komisija pregledat će prispjela rješenja i ocijeniti ih najkasnije do 15. prosinca 2005. godine.

Proglašenje pobjednika obavit će se putem weba i u medijima. Uručenje nagrade obavit će se u dogovoru s pobjednikom.

 

.dodatneInformacije

Za sve dodatne informacije možete se obratiti na sin@dir.hr. I sretno!

Propozicije, zadatak i GUESS.EXE možete skinuti i ovdje: sin2005.zip

 


U Rijeci, 07. studenog 2005. godine