utešna nagrada (prize) - ioi2017.orgioi2017.org/tasks/day2/prize/prize-srb.pdf · takmičenju...

4
International Olympiad in Informatics 2017 July 28 August 4, 2017 Tehran, Iran Day 2 Tasks prize Serbian (SRB) Utešna nagrada (prize) Nakon završene Balkanijade iz programiranja za sve takmičare koji nisu uspeli da osvoje medalju na takmičenju organizovana je nagradna igra "Utešna nagrada" gde takmičari imaju šansu da osvoje barem nešto i ne odu kući praznih ruku. Tom prilikom je pred Momčiloda postavljen niz od kutija, označenih od do , s leva na desno. Svaka kutija sadrži tačno jednu nagradu, koja ostaje nepoznata dok se ta kutija ne otvori. Postoji tipova nagrada. Tipovi su numerisani od do po opadajućem redosledu vrednosti. Nagrada tipa je najskuplja: dijamantske štikle. Postoje tačno jedne dijamantske štikle u kutijama. Nagrada tipa je najjeftinija: lizalica. Kako bi igra bila uzbudljivija, broj jeftinijih nagrada je mnogo veći od broja skupljih nagrada. Preciznije, za svako za koje znamo sledeće: Ako ima nagrada tipa , onda ima strogo više od nagrada tipa . Momčilodov cilj je da osvoji dijamantske štikle. Na kraju igre Momčilod otvara jednu kutiju i osvaja nagradu koja se nalazi u njoj. Pre nego što odabere koju će kutiju otvoriti, ima priliku da Tinadi, voditeljki kviza, postavi neka pitanja. Za svako pitanje odabira neku kutiju . Kao svoj odgovor, Tinada će dati niz koji sadrži dva cela broja. Njihovo značenje je sledeće: Među svim kutijama levo od kutije ima tačno kutija koje sadrže skuplju nagradu od nagrade u kutiji . Među svim kutijama desno od kutije ima tačno kutija koje sadrže skuplju nagradu od nagrade u kutiji . Na primer, pretpostavimo da je . Za svoje pitanje odabrao je kutiju . Tinadin odgovor je . Značenje ovog odgovora je: Tačno jedna od kutija i sadrži nagradu koja je skuplja od nagrade u kutiji . Tačno dve od kutija sadrže nagradu koja je skuplja od nagrade u kutiji . Tvoj zadatak je da pomogneš Momčilodu da nađe kutiju koja sadrži dijamantske štikle postavljajući mali broj pitanja. Detalji implementacije Potrebno je da implementiraš sledeću funkciju: int find_best(int n) Ova procedura se poziva tačno jednom od strane grejdera. Prize (1 of 4)

Upload: hadang

Post on 07-Feb-2018

219 views

Category:

Documents


2 download

TRANSCRIPT

InternationalOlympiadinInformatics2017July28–August4,2017Tehran,IranDay2Tasks

prizeSerbian(SRB)

Utešnanagrada(prize)NakonzavršeneBalkanijadeizprogramiranjazasvetakmičarekojinisuuspelidaosvojemedaljunatakmičenjuorganizovana jenagradna igra "Utešnanagrada"gde takmičari imajušansudaosvojebaremneštoineodukućipraznihruku.

Tom prilikom je predMomčiloda postavljen niz od kutija, označenih od do , s leva nadesno.Svakakutija sadrži tačno jednunagradu, kojaostajenepoznatadokse takutijaneotvori.Postoji tipovanagrada.Tipovisunumerisaniod do poopadajućemredosleduvrednosti.

Nagradatipa jenajskuplja:dijamantskeštikle.Postojetačnojednedijamantskeštikleukutijama.Nagrada tipa jenajjeftinija: lizalica.Kakobi igrabilauzbudljivija,broj jeftinijihnagrada jemnogovećiodbrojaskupljihnagrada.Preciznije,zasvako zakoje znamosledeće:Akoimanagradatipa ,ondaimastrogovišeod nagradatipa .

Momčilodovcilj jedaosvojidijamantskeštikle.Nakraju igreMomčilodotvara jednukutiju iosvajanagradu koja se nalazi u njoj. Pre nego što odabere koju će kutiju otvoriti, ima priliku da Tinadi,voditeljki kviza, postavi neka pitanja. Za svako pitanje odabira neku kutiju . Kao svoj odgovor,Tinadaćedatiniz kojisadržidvacelabroja.Njihovoznačenjejesledeće:

Među svim kutijama levo od kutije ima tačno kutija koje sadrže skuplju nagradu odnagradeukutiji .Međusvimkutijamadesnoodkutije ima tačno kutija koje sadrže skuplju nagraduodnagradeukutiji .

Naprimer,pretpostavimodaje .Zasvojepitanjeodabraojekutiju .Tinadinodgovorje.Značenjeovogodgovoraje:

Tačnojednaodkutija i sadržinagradukojajeskupljaodnagradeukutiji .Tačnodveodkutija sadrženagradukojajeskupljaodnagradeukutiji .

TvojzadatakjedapomognešMomčilodudanađekutijukojasadržidijamantskeštiklepostavljajućimalibrojpitanja.

Detaljiimplementacije

Potrebnojedaimplementirašsledećufunkciju:

intfind_best(intn)

Ovaprocedurasepozivatačnojednomodstranegrejdera.

Prize (1 of 4)

:brojkutija.Ova funkcija treba da vrati oznaku kutije koja sadrži dijamantske štikle, tj. ceo broj (

)takavdakutija sadržinagradutipa .

Ovafunkcijamožedapozivasledećufunkciju:

int[]ask(inti)

:oznakakutijezakojupostavljašpitanje.Vrednost morabitiizmeđu i ,uključujući itebrojeve.Ovafunkcijavraćaniz sa elementa.Ovdeje brojskupljihnagradaukutijamalevoodkutije ,a jebrojskupljihnagradaukutijamadesnoodkutije .

Primer

Graderpozivasledećuproceduru:

find_best(8)

Postoji kutija. Pretpostavimo da su tipovi nagrada . Svi mogući poziviprocedureaskiodgovarajućiodgovorisunavedeniispod.

ask(0)vraćaask(1)vraćaask(2)vraćaask(3)vraćaask(4)vraćaask(5)vraćaask(6)vraćaask(7)vraća

Uovomprimeru,dijamantskeštiklesuukutiji ,tezbogtogaprocedurafind_besttrebadavrati.

Prize (2 of 4)

Slika iznadprikazujeovajprimer(dijamantskeštiklesuzgodnooznačenedijamantom).Gornjideoslikeprikazujetipovenagradausvakojkutiji.Donjideoslikeprikazujeupitask(2).Čekiranekutijesadrževrednijenagradeodnagradekojasenalaziukutiji .

Ograničenja

.Tipovinagradausvakojodkutijasuizmeđu i ,uključujućitebrojeve.Postojitačnojednanagradatipa .Zasve ,ukolikopostoji nagradatipa ,ondapostojistrogovišeod nagradatipa .

Podzadaciibodovanje

U nekim test primerima grejdermože da se ponaša adaptivno. To znači da u tim test primerimagrejder nema fiksan niz nagrada, nego odgovor grejderamože da zavisi od pitanja kojemu tvojprogram postavi. Garantuje se da će grejder odgovarati tako da nakon svakog odgovora postojibaremjedanniznagradakonzistentansasvimodgovorimadotada.

1. (20 bodova) Postoji tačno dijamantske štikole i lizalica ( ). Možes pozvatiproceduruasknajviše puta.

2. (80bodova)Nemadodatnihograničenja.

Upodzadatku2možesdadobiješparcijalnebodove.Nekaje najvećibrojpozivaprocedureaskmeđu svim test primerimau ovompodzadatku.Onda će se tvoj broj bodova za ovaj podzadatakračunatipremasledećojtabeli:

Prize (3 of 4)

Brojpitanja Bodovi

(prikazanouCMS-ukao'WrongAnswer')

Primergrejdera

Primergrejderanijeadaptivan.Umestotoga,primergrejderasamoučitavaikoristifiksanniztipovanagrada .Zasve ,tipnagradeukutiji jedatsa .Primergrejderaočekujeulazusledećemformatu:

linija :linija :

Primer grejdera ispisuje jednu liniju koja sadrži vraćenu vrednost od funkcije find_best i brojpozivaprocedureask.

Prize (4 of 4)