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

Preview:

Citation preview

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)