Hari 0 (Sesi Latihan) 1. Empek-empek 2. Gunting Kertas 3. Matriks

advertisement
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
Download