hadiah akbar - ioi2017.orgioi2017.org/tasks/day2/prize/prize-idn.pdf · yang harus dibuka, anda...

Post on 08-May-2019

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

InternationalOlympiadinInformatics2017July28–August4,2017Tehran,IranDay2Tasks

prizeIndonesian(IDN)

HadiahAkbarHadiah Akbar adalah sebuah acara permainan televisi terkenal. Anda adalah peserta beruntungyangmajukebabakfinal.Andaberdirididepansebuahbarisberisi kotak,dinomoridari hingga

darikiri kekanan.Setiapkotakberisisebuahhadiahyang tidakdapatdilihatsampaikotaktersebutdibuka.Terdapat tipe hadiah berbeda. Tipe-tipe tersebut dinomori dari hinggadenganurutannilaimenurun.

Hadiahbertipe adalahhadiahyangpalingmahal:sebuahberlian.Terdapattepatsatuberlianpadakotak-kotak tersebut.Hadiahbertipe adalahhadiahyangpalingmurah:sebuahpermen lollipop.Untuk membuat permainan lebih menarik, banyaknya hadiah yang lebih murah jauh lebih besardaripadabanyaknyahadiahyanglebihmahal.Lebihjelasnya,untuksetiap sedemikiansehingga

kitamengetahuihalberikut: jika terdapat hadiahbertipe , terdapat lebihdarihadiahbertipe .

TujuanAndaadalahmendapatkanberlian tersebut.Padaakhir permainan,AndaharusmembukasebuahkotakdanAndaakanmendapatkanhadiahdidalamkotaktersebut.Sebelummemilihkotakyang harus dibuka, Anda dapat menanyakan beberapa pertanyaan kepada Rambod, pembawaacara dari permainan tersebut. Untuk setiap pertanyaan, Andamemilih sebuah kotak . Sebagaijawabannya,RambodakanmemberiAndasebuaharray berisiduabilanganbulat.Artinyaadalahsebagaiberikut:

Di antara kotak-kotak di sebelah kiri kotak , terdapat tepat kotak yang berisi sebuahhadiahyanglebihmahaldaripadahadiahpadakotak .Diantarakotak-kotakdisebelahkanankotak , terdapattepat kotakyangberisisebuahhadiahyanglebihmahaldaripadahadiahpadakotak .

Sebagai contoh, anggap . Sebagai pertanyaan Anda, Anda memilih kotak . Sebagaitanggapannya,RambodmemberitahuAndabahwa .Artidaritanggapaniniadalah:

Tepatsatudarikotak-kotak dan berisi sebuahhadiahyang lebihmahaldaripadahadiahpadakotak .Tepatduadarikotak-kotak berisisebuahhadiahyanglebihmahaldaripadahadiahpadakotak .

TugasAndaadalahmencarikotakyangberisiberliandenganmenanyakansedikitpertanyaan.

Detilimplementasi

Andaharusmengimplementasikanprosedurberikutini:

Prize (1 of 4)

intfind_best(intn)

Prosedurinidipanggiltepatsekaliolehgrader:banyaknyakotak.Prosedurtersebutharusmengembalikannomordarikotakyangberisiberlian,yakni,bilanganbulatunik ( )sedemikiansehinggakotak berisisebuahhadiahbertipe .

Prosedurdiatasdapatmemanggilprosedurberikut:

int[]ask(inti)

:nomordarikotakyangAndapilihuntukditanyakan.Nilaidari harusdiantara dan ,inklusif.Prosedur inimengembalikanarray berisi elemen.Disini, adalahbanyaknyahadiahyanglebihmahalpadakotak-kotakdisebelahkirikotak dan adalahbanyakhadiahyanglebihmahalpadakotak-kotakdisebelahkanankotak .

Contoh

Gradermelakukanpemanggilanprosedurberikut:

find_best(8)

Terdapat kotak. Anggap tipe-tipe hadiah adalah . Seluruh pemanggilanproseduraskyangmungkindannilaikembalianyangsesuaididaftarkandibawahini.

ask(0)mengembalikanask(1)mengembalikanask(2)mengembalikanask(3)mengembalikanask(4)mengembalikanask(5)mengembalikanask(6)mengembalikanask(7)mengembalikan

Pada contoh ini, berlian tersebut berada pada kotak . Maka prosedur find_best harusmengembalikan .

Prize (2 of 4)

Gambardiatasmengilustrasikancontohini.Bagianatasmenunjukkantipedarihadiahpadasetiapkotak.Bagianbawahmengilustrasikanpertanyaanask(2).Kotakyangditandaiberisihadiahyanglebihmahaldaripadahadiahpadakotak .

Batasan

.Tipedarihadiahpadasetiapkotakdiantara dan ,inklusif.Terdapattepatsatuhadiahbertipe .Untuk setiap , jika terdapat hadiah bertipe , terdapat lebih dari hadiahbertipe .

Subsoaldanpenilaian

Padabeberapakasusuji,perilakugraderadalahadaptif.Iniberartidalamkasus-kasusujiini,gradertidakmemilikisebuahbarisanhadiahyangtetap.Akantetapi,jawaban-jawabanyangdiberikanolehgrader dapatbergantungpadapertanyaan-pertanyaanyangditanyakanolehsolusiAnda.Dijaminbahwagrader menjawab sedemikian sehingga setelah setiap jawaban, terdapat setidaknya satubarisanhadiahyangkonsistendenganseluruhjawabanyangdiberikansejauhini.

1. (20poin)Terdapat tepat berliandan permen lollipop (sehingga, ).Andadapatmemanggilproseduraskpalingbanyak kali.

2. (80poin)Tidakadabatasantambahan.

Pada subsoal 2 Anda dapat mendapatkan sebuah nilai parsial. Anggap adalah banyaknyapemanggilanproseduraskmaksimumdiantaraseluruhkasusujipadasubsoalini.Maka,nilaiAndauntuksubsoalinidihitungberdasarkantabelberikutini:

Prize (3 of 4)

Pertanyaan Nilai

(dilaporkandiCMSsebagai'WrongAnswer')

Gradercontoh

Grader contoh tidakadaptif.Melainkan,grader contohhayamembacadanmenggunakansebuaharray tetap berisi tipe-tipe hadiah. Untuk setiap , tipe dari hadiah pada kotakdiberikansebagai .Gradercontohmengharapkanmasukandenganformatberikut:

baris :baris :

Grader contoh mencetak sebuah baris berisi nilai kembalian dari find_best dan banyaknyapemanggilanprosedurask.

Prize (4 of 4)

top related