HakCipta DilindungiUndang-undang OLIMPIADESAINSNASIONAL2016 DESKRIPSISOAL INFORMATIKA/KOMPUTER Hari0(SesiLatihan) 1. Empek-empek 2. GuntingKertas 3. MatriksBiner Waktu:2Jam Hari 0 / Soal 1 - Empek-empek BatasMemori BatasWaktu :64MB :1s Deskripsi SetelahPakDengklekberkonsultasidengankerabatnyayangmerupakanorangasliPalembang,Pak Dengklekmengetahuibahwauntukmembuatempek-empekdiperlukan3jenisbarang:ikan,tepung sagu,dangulaaren. TerdapatsebuahpasardenganNtokoyangberadadalamsatubarisandarikirikekanan.Toko-toko tersebutada3macam,yaituyangdinomoridengan1menjualikan,nomor2menjualtepungsagu, dannomor3menjualgulaaren. Pak Dengklek ingin berjalan dari kiri ke kanan pasar tersebut. Tetapi, Pak Dengklek tetap ingin memenuhi kebutuhannya sesuai urutan awalnya, yaitu ikan, tepung sagu, lalu gula aren. Dengan kata lain, pada awalnya Pak Dengklek akan mencari sebuah toko yang menjual ikan, setelah itu tepungsagu,danterakhirgulaaren. Terdapat sangat banyak kemungkinan penentuan cara pemilihan toko sesuai alur yang diinginkan olehPakDengklek,sehinggaAndapundibuatpenasaran:Adaberapabanyakcaramenentukantoko yangmenjualikan,kemudiantepungsagu,danterakhirgulaaren? FormatMasukan Barispertamaakanberisilabelkasusuji.Labelkasusujiadalahsebuahstringyangdijelaskan sebagaiberikut: • Panjangstringtersebutadalahbanyaknyasubsoalditambahsatu. • Karakterke-0(indeksdimulaidari0)akanberisi0jikakasusujitersebutmerupakancontoh kasusuji,atauberisi'.'(titik)jikabukan. • Untuksetiapnilaiidiantara1hinggabanyaknyasubsoal,berlaku: o jikakasusujitersebutmemenuhibatasansubsoalke-i,makakarakterke-iberisii, atau Halaman1 o jikakasusujitersebuttidakmemenuhibatasansubsoalke-i,makakarakterke-iberisi karakter'.'(titik). Sebagaicontohapabilalabelsebuahkasusujisebuahsoaladalah0..345,maka: • Soaltersebutmemiliki5buahsubsoal, • Kasusujitersebutmerupakancontohkasusuji,dan • Kasusujitesebutmemenuhibatasansubsoalke-3,ke-4,danke-5. BariskeduaberisisebuahbilanganbulatNyangmenyatakanbanyaknyatoko. BarisberikutnyasebuahstringberisiNdigityangmerepresentasikantokodarikirikekanan.Digit tersebutberkisardari1sampai3. FormatKeluaran Keluarkansebuahbilanganbulatyangmenyatakanbanyaknyakemungkinankombinasiurutantoko yangdikunjungiolehPakDengklek. ContohMasukan 0..345 7 1121332 ContohKeluaran 4 Penjelasan Ada4kombinasiurutantokoyangdikunjungiolehPakDengklek,yakni: • Tokoke-1,tokoke-3,lalutokoke-5. • Tokoke-1,tokoke-3,lalutokoke-6. • Tokoke-2,tokoke-3,lalutokoke-5. • Tokoke-2,tokoke-3,lalutokoke-6. Halaman2 Subsoal Subsoal1(7poin) Hanyaterdiridarikasusujiberikut: .1.345 7 1213233 Subsoal2(13poin) Hanyaterdiridarikasusujiberikut: ..2345 10 1211312323 Subsoal3(20poin) • 1≤N≤100 Subsoal4(25poin) • 1≤N≤1.000 Subsoal5(35poin) • 1≤N≤100.000 Halaman3 Hari0/Soal2-GuntingKertas BatasMemori BatasWaktu :16MB :100ms Deskripsi PakDengklekadalahorangyangsangatsukaberpikir.Suatuhari,PakDengklekterpikirakansebuah permainansebagaiberikut: • Permainantersebutdimainkanoleh2orang. • Kepadapemainpertama,akandiberikansebuahkertasberukuranNxM(NdanMbilangan bulat). Pada setiap giliran, pemain yang bermain pada giliran tersebut harus memotong kertastersebutmenjadiduadanmembuangsalahsatupotongan. • Potongankertasyangtidakdibuangharusberukuranpxqdenganpdanqyangdipilihharus merupakanbilanganbulatpositif,dimanasalahsatukondisiberikutharusterpenuhi: • o p=Ndanq<M,atau o p<Ndanq=M. Potonganyangtidakdibuangkemudiandiberikankepadapemainyanglain.Pemaintersebut akanbermainpadagiliranberikutnya. Pemainyangkalahadalahpemainyangtidakdapatmemotongkertasyangmemenuhikriteriapx qdiatas,ataupemainyangmenerimapotongankertasberukuran1x1(ukuranterkecilkertasyang mungkin). Dengan kata lain, pemenang dari permainan ini adalah pemain yang dapat memotong kertasmenjadiukuran1x1. Saat ini, Anda ditantang oleh Pak Dengklek untuk memainkan permainan ini. Dapatkah Anda mengalahkanPakDengklekdalampermainanini? FormatInteraksi Padasoaliniandaakanberinteraksidenganjuri. Baris pertama akan berisi label kasus uji. Label kasus uji adalah sebuah string yang dijelaskan sebagaiberikut: Halaman4 • Panjangstringtersebutadalahbanyaknyasubsoalditambahsatu. • Karakterke-0(indeksdimulaidari0)akanberisi0jikakasusujitersebutmerupakancontoh kasusuji,atauberisi'.'(titik)jikabukan. • Untuksetiapnilaiidiantara1hinggabanyaknyasubsoal,berlaku: o jika kasus uji tersebut memenuhi batasan subsoal ke-i, maka karakter ke-i berisi i, atau o jikakasusujitersebuttidakmemenuhibatasansubsoalke-i,makakarakterke-iberisi karakter'.'(titik). Sebagaicontohapabilalabelsebuahkasusujisebuahsoaladalah0..345,maka: • Soaltersebutmemiliki5buahsubsoal, • Kasusujitersebutmerupakancontohkasusuji,dan • Kasusujitesebutmemenuhibatasansubsoalke-3,ke-4,danke-5. SelanjutnyaprogramakanmenerimaduabuahbilanganNdanM(sesuaideskripsidiatas). Lalu, secara berganti-gantian, program Anda dan program juri akan mengeluarkan dua buah bilangan p dan q, yang berarti memberikan kertas berukuran p x q ke lawan. Permainan berakhir apabila program Anda mengeluarkan nilai pdan q yang tidak valid atau salah satu dari programAndadanprogramjuriberhasilmemotongkertasmenjadiukuran1x1. ContohInteraksi1 KeluaranProgramAnda KeluaranProgramGrader 0..345 54 53 33 32 31 11 (interaksiselesai) Andamenangdanandamendapatkanpoinuntukkasusujiini. Halaman5 ContohInteraksi2 KeluaranProgramAnda KeluaranProgramGrader 0..345 54 53 33 34 (interaksiselesai) Programdiberhentikankarenanilaipdanqtidakvalid.Andatidakmendapatkanpoinuntuksoalini. Andamendapatnilaiapabila: • Andaberhasilmemotongkertasmenjadiukuran1x1,dan • Andatidakmengeluarkanukuranyangtidakvalid Andatidakmendapatnilaiapabila: • Juriberhasilmemotongkertasmenjadiukuran1x1,atau • Andamengeluarkanukuranyangtidakvalid Subsoal • Masukan N dan M diberikan sedemikian rupa sehingga dijamin Anda dapat memenangkan permainan apabila anda bermain secara optimal meskipun Pak Dengklek bermain secara optimal. • Padasubsoal1,subsoal2,sertacontohinteraksi,PakDengklektidakselalubermainoptimal. Namun pada subsoal lainnya (subsoal 3 hingga 5), Pak Dengklek akan selalu bermain optimal. Subsoal1(15poin) • N=3 • M=8 • Andadapatmemainkanpermainandisini. Halaman6 Subsoal2(15poin) • N=6 • M=8 • Andadapatmemainkanpermainandisini. Subsoal3(20poin) • 1≤N,M≤5 Subsoal4(20poin) • 1≤N,M≤100 Subsoal5(30poin) • 1≤N,M≤10.000 Halaman7 Hari0/Soal3-MatriksBiner BatasMemori BatasWaktu :0MB :0s Deskripsi Matriksbinermerupakansebuahmatriksyangsetiapelemennyamerupakanangka1atau0.Karena matriksinisangatsederhana,makaPakDengklekmemutuskanuntukmenggunakanmatriksbiner berukuran N * M sebagai password untuk membuka dokumen yang sangat rahasia, "Konspirasi MenaklukkanDunia". Namun, karena sudah lama tidak membuka dokumen tersebut, Pak Dengklek lupa password rahasianya!Setelahberhari-hariberusahamengingatpasswordnyakembali,yangdapatdiingatoleh PakDengklekadalahhasilXORdarisetiapbarisdankolomdarimatrikstersebut.Serta,tepat50% darielemenmatrikstersebutmerupakanangka1dansisanyamerupakanangka0.Dengankatalain, banyakangka1danbanyakangka0padamatrikstersebutsama. HasilXORdarisemuaelemenpadabariske-iadalahRi. HasilXORdarisemuaelemenpadakolomke-jadalahCj. BantulahPakDengklekmenemukanpasswordrahasianya! InformasiTipeSoal Tipe soal seperti ini biasa disebut "output-only". Pada soal ini Anda diminta untuk langsung menuliskankeluaranprogramkedalamsebuahberkaskeluaranperkasusuji.Setelahitu,kompres semuaberkaskeluarandalamsebuahberkas.zip. Masukanuntuksoalinidapatdiunduhdisini. Di dalam berkas zip tersebut ada 1 + 5 masukan untuk diselesaikan: osn-2016-matriksbiner_sample_1.in, osn-2016-matriks-biner_1_1.in, osn-2016-matriks-biner_2_1.in, ..., osn-2016matriks-biner_5_1.in.Masukansampletidakdinilai.Untuksetiapberkasmasukanyangdiselesaikan (Anda tidak harus menyelesaikan semua masukan), buatlah berkas keluaran dengan nama osn2016-matriks-biner_X_1.out, di mana X adalah nomor masukan (atau osn-2016-matriksbiner_sample_X.out untuk sample) sesuai format keluaran. Setelah itu, kompres semua berkas keluarandalamsebuahberkas.zip. Halaman8 FormatMasukan Baris pertama akan berisi label kasus uji. Label kasus uji adalah sebuah string yang dijelaskan sebagaiberikut: • Panjangstringtersebutadalahbanyaknyasubsoalditambahsatu. • Karakterke-0(indeksdimulaidari0)akanberisi0jikakasusujitersebutmerupakancontoh kasusuji,atauberisi'.'(titik)jikabukan. • Untuksetiapnilaiidiantara1hinggabanyaknyasubsoal,berlaku: o jikakasusujitersebutmemenuhibatasansubsoalke-i,makakarakterke-iberisii,atau o jika kasus uji tersebut tidak memenuhi batasan subsoal ke-i, maka karakter ke-i berisi karakter'.'(titik). Sebagaicontohapabilalabelsebuahkasusujisebuahsoaladalah0..345,maka: • Soaltersebutmemiliki5buahsubsoal, • Kasusujitersebutmerupakancontohkasusuji,dan • Kasusujitesebutmemenuhibatasansubsoalke-3,ke-4,danke-5. Barisselanjutnyaberisi2buahbilanganbulatNdanM. BarisselanjutnyaberisiNbuahbilanganbulat,bilanganke-ipadabaristersebutadalahRi. BarisselanjutnyaberisiMbuahbilanganbulat,bilanganke-ipadabaristersebutadalahCi. FormatKeluaran Keluarkan N baris yang masing-masing berisi M buah bilangan 0 atau 1 yang masing-masing dipisahkanolehsebuahspasi,yangmerupakanmatriksrahasiaPakDengklek.Untuklebihjelasnya, lihatbagiancontohkeluaran. ContohMasukan 0..... 36 010 011100 Halaman9 ContohKeluaran 110110 011010 110000 Subsoal Apabila matrix yang Anda berikan memenuhi kriteria Pak Dengklek (banyak angka 1 dan banyak angka 0 pada matriks tersebut sama), nilai anda akan dihitung menggunakan formula berikut: (X/(N+M))2*P X adalah banyaknya baris dan kolom pada matriks Anda yang hasil XOR dari elemen-elemennya sesuaidenganingatanPakDengklek.PerhatikanbahwaAndatidakharusmemenuhisetiapRidanCi. PmerupakannilaimaksimalyangmungkinAndadapatkanpadakasusujitersebut. Subsoal1(15poin) • Namaberkas:osn-2016-matriks-biner_1_1.in • N=2 • M=3 Subsoal2(15poin) • Namaberkas:osn-2016-matriks-biner_2_1.in • N=3 • M=4 Subsoal3(20poin) • Namaberkas:osn-2016-matriks-biner_3_1.in • N=4 • M=6 Subsoal4(25poin) • Namaberkas:osn-2016-matriks-biner_4_1.in • N=6 • M=8 Subsoal5(25poin) • Namaberkas:osn-2016-matriks-biner_5_1.in • N=10 • M=10 Halaman10