OSN 2010 OSN 2010 Sesi 3

SOAL SESI 3

OLIMPI ADE SAI NS NASI ONAL I X
BIDANG INFORMATI KA
4 AGUSTUS 2010
MEDAN, SUMATERA UTARA

Selamat Bekerja, Berkompetisi, Jadilah Yang Terbaik!

Sesi 3

OSN IX

Shuffle
Kode soal: osn1013.PAS/ C/ CPP
Batas Run-time: 1 detik / t est -case
Batas M emori: 16 M B

Pak Dengklek selaku panit ia Olimpiade Sains Nasional 2010, sedang berada di dalam pesaw at menuju
M edan. M erasa kurang kerjaan di dalam pesaw at , Pak Dengklek hendak mendengarkan lagu menggunakan
alat pemut ar lagu, ipod shuffle, miliknya. Alat tersebut berisikan M buah lagu kesukaan Pak Dengklek yan g

judulnya berbeda satu sama lain.
Supaya t idak membosankan, alat t ersebut melakukan algorit ma pengocokan urut an pemut aran lagu.
Dengan algorit ma t ersebut, sebelum mulai memut arkan lagu, alat t ersebut akan membentuk permut asi M
buah lagu. Set elah permut asi t ersebut t erbentuk, baru lah lagu diput arkan sat u persat u. Set elah M buah
lagu t ersebut selesai diput ar, jika masih mau didengarkan, alat t ersebut akan membent uk permut asi M
buah lagu lagi lalu memainkannya sat u persat u.
Dasar Pak Dengklek yang unik, mendengarkan lagu saja kurang m engasyikkan bagi dia. Kali ini ia t ert arik
unt uk membukt ikan apakah algorit ma pengocokan alat pemut ar lagunya berjalan dengan benar. Definisi
benar dalam hal ini adalah bahwa jika M buah lagu pert ama yang Pak Dengklek dengar mencakup semua
lagu yang ada (tidak ada lagu yang tidak diput arkan). Begit u pula dengan M buah lagu berikut nya (set elah
M buah lagu pert ama), harus mencakup semua lagu yang ada, dan set erusnya.

Unt uk it u, Pak Dengklek t elah mencat at N buah lagu yang sudah ia dengarkan dari aw al ia menggunakan
alat t ersebut . Pak Dengklek t ahu bahw a agar pembukt iannya menjadi sederhana, N harus merupakan
kelipatan M .
Bantulah Pak Dengklek untuk melakukan pembukt ian akan ipod shuffle-nya.

FORMAT MASUKAN
Baris pert ama berisi sebuah bilangan bulat M (1 ≤ M ≤ 100) dan N (M ≤ N ≤ 1000, N merupakan kelipat an
M ), banyaknya lagu yang t erdapat dalam ipod shuffle


milik Pak Dengklek dan banyaknya lagu yang

didengarkan oleh Pak Dengklek dari aw al secara bert urut an. N baris berikut nya berisi judul lagu yang
didengarkan oleh Pak Dengklek berurut an dari yang pert ama ia dengarkan. Set iap judul lagu diwakil kan
oleh 4 karakt er huruf kecil ('a' sampai 'z'), t idak ada spasi di aw al judul at au akhir judul.

FORMAT KELUARAN
Baris pert ama berisi kat a " BENAR" t anpa t anda kut ip jika dari cat at an Pak Dengklek dapat disimpulkan
bahw a algorit ma pengocokan yang dilakukan oleh ipod shuffle miliknya berjalan dengan benar atau berisi
kat a-kat a " BELI BARU" t anpa t anda kut ip jika sebaliknya. Jika baris pert ama berisi " BENAR" , maka t idak
perlu ada baris kedua. Namun jika baris pert ama berisi " BELI BARU" , maka baris kedua berisi sebuah
bilangan bulat yang menyat akan urut an lagu yang sampai situ saja sebenarnya sudah dapat membuat Pak
Dengklek menyat akan bahw a ipod shuffle miliknya tidak berjalan dengan benar.
Halaman 1 dari 11

Sesi 3

OSN IX


CONTOH MASUKAN 1

3 9
kgrc
kcgr
bsms
kgrc
bsms
kcgr
kgrc
kcgr
bsms
CONTOH KELUARAN 1

BENAR
CONTOH MASUKAN 2

4 8
bgmn
idry

bgmn
idry
bgmn
idry
bgmn
idry
CONTOH KELUARAN 2

BELI BARU
3
CONTOH MASUKAN 3

2 2
nkpg
plpl
CONTOH KELUARAN 3

BENAR
PENJELASAN
Pada contoh pert ama, lagu Keong Racun (berko de kgrc), lagu Kucing Garong (kcgr), dan lagu Bang SM S

(bsms), masing-masing diput arkan tepat satu kali dalam urut an 1 sampai 3, 4 sampai 6, dan 7 sampai 9.
Pada cont oh kedua, seharusnya ada 4 lagu, namun Bagimu Negeri (berkode bgmn) sudah diput arkan unt uk
kedua kalinya pada urut an ke-3.
Pada contoh ket iga, t erdapat 2 lagu, dan sejauh ini 2 lagu t ersebut sudah diput arkan masing-masing sat u
kali.

Halaman 2 dari 11

Sesi 3

OSN IX

Magic
Kode soal: osn1014.PAS/ C/ CPP
Batas Run-time: 1 detik / t est -case
Batas M emori: 16 M B

Sambil menemani peserta menunggu w akt u untuk masu k ruang kompet isi Olimpiade Sains Nasional 2010,
Pak Dengklek sebagai panitia yang baik mencoba berint eraksi dengan para pesert a.
Kali ini, Pak Dengklek mencoba menunjukkan kemampuan sulapnya. Ia memint a salah seorang pesert a

unt uk menuliskan N buah bilangan bulat (x1 , x2 , x3 , ... xN) masing-masing bernilai ant ara 1 sampai dengan
10 (t ermasuk mungkin 1 at au 10 itu sendiri). Pak Dengklek berkat a bahwa ia dapat menebak N buah
bilangan bulat t ersebut t anpa ia lihat langsung. Pak Dengklek hanya memint a pesert a unt uk mengikuti
perint ahnya sebagai berikut .
Pert ama-t ama, set elah menuliskan N buah bilangan bulat, peserta dimint a unt uk menuliskan N -1 buah
bilangan bulat lain dengan cara menjumlahkan set iap bilangan bulat yang bersebelahan, xi ' = xi + xi+1. Jika
awalnya, pesert a t ersebut menuliskan x1, x2, x3, ... xN, maka berikutnya ia akan menulis N -1 buah bilangan
bulat (x1 ' , x2 ' , x3 ', ... xN-1' ). Dan proses t ersebut t erus dilakukan sampai hanya t ersisa sebuah bilangan
bulat. Set elah hanya t ersisa sebuah bilangan bulat , Pak Dengklek memint a pesert a unt uk memberit ahunya
x1 , x1 ' , sampai x1 dengan t anda pet ik sebanyak N .

Sebagai contoh, jika pesert a m enuliskan 5 buah bilangan bulat pada mulanya, 3 1 5 4 2, maka berikut ini
adalah proses yang akan dilakukan oleh pesert a.

3
4

1

5

6

10

4
9

15
25 30
55

2
6
15

Kemudian pesert a hanya perlu memberit ahukan 3 4 10 25 55 kepada Pak Dengklek agar Pak Dengklek
dapat menebak 5 bilangan bulat yang ditulis mula-mula (3 1 5 4 2). Sebagai ket erangan t ambahan, bilangan
4 di baris kedua pada segit iga bilangan di at as didapat kan dari penjumlahan bilangan 3 d an bilangan 1 di
baris pert ama.
Bantulah Pak Dengklek untuk melakukan sulapnya.


FORMAT MASUKAN
Baris pert ama berisi sebuah bilangan bulat N (1 ≤ N ≤ 10). Baris kedua berisi N buah bilangan bulat yan g
merupakan x1, x1 ' , sampai x1 dengan t anda pet ik sebanyak N .

FORMAT KELUARAN
Sebuah baris berisi N buah bilangan bulat yang merupakan x1, x2, x3 , ... xN.
Halaman 3 dari 11

Sesi 3

OSN IX

CONTOH MASUKAN 1

5
3 4 10 25 55
CONTOH KELUARAN 1

3 1 5 4 2

CONTOH MASUKAN 2

2
4 8
CONTOH KELUARAN 2

4 4
CONTOH MASUKAN 3

3
1 3 8
CONTOH KELUARAN 3

1 2 3
PENJELASAN
Contoh pert ama sama sepert i contoh yang diberikan pada deskripsi soal.

Halaman 4 dari 11

Sesi 3


OSN IX

Missile
Kode soal: osn1015.PAS/ C/ CPP
Batas Run-time: 1 detik / t est -case
Batas M emori: 16 M B

Ramainya kasus t erorisme saat ini, membuat Pak Dengklek mendapat kan ide berikut ini untuk salah satu
soal Olimpiade Sains Nasional 2010.
Diberikan informasi lokasi N buah rumah yang t erlet ak di sepanjang jalan yang diberi nomor ant ara 1
sampai dengan 100 000 (t ermasuk mungkin 1 at au 100 000 itu sendiri) yang menyat akan posisi rumah
t ersebut (t ermasuk mungkin 1 dan 100 000 t ersebut ) dan informasi jangkauan M buah misil yang dapat
digunakan unt uk menghancurkan salah sat u rumah. Sebuah misil hanya dapat menghancurkan sebuah
rumah yang diberikan informasi nomornya dan berada dalam jangkauan misil t ersebut . Tugasnya cukup
sed erhana yakni untuk menghitung berapa banyak rumah maksimal yang dapat dihancurkan dengan
menggunakan maksimal M buah misil t ersebut .
Bantulah Pak Dengklek untuk menguji seberapa sulit ide soal t ersebut dengan membuat contoh solusinya.

FORMAT MASUKAN

Baris pert ama berisi dua buah bilangan bulat N (1 ≤ N ≤ 1 000) dan M (1 ≤ M ≤ 1 000). Baris kedua berisi N
buah bilangan bulat dipisahkan spasi yang m erupakan informasi nomor rumah-rumah. Tidak ada dua
rumah yang bernomor sama.
M baris berikut nya masing-masing berisi dua buah bilangan bulat A dan B (1 ≤ A, B ≤ 100 000) yang

menyat akan jangkauan awal dan akhir misil t ersebut .
Pada lima puluh persen masukan, tidak akan t erdapat dua buah misil dimana jangkauan misil pert am a
adalah subset dari jangkauan misil kedua. Dengan kat a lain, t idak akan t erdapat dua buah misil diman a
jangkauan kiri misil pert ama lebih kecil dari jangkauan misil kedua sedangkan jangkauan kanan misil
pert ama lebih besar dari jangkauan misil kedua.

FORMAT KELUARAN
Sebuah bilangan bulat yang menyat akan banyak rumah maksimal yang dapat dihancurkan.

CONTOH MASUKAN 1

3
1
1
9
8

3
5 10
2
12
11

CONTOH KELUARAN 1

2
Halaman 5 dari 11

Sesi 3

OSN IX

CONTOH MASUKAN 2

3
1
4
1
2

3
2 5
5
5
4

CONTOH KELUARAN 2

3
CONTOH MASUKAN 3

3
1
1
1
2

3
4 5
2
5
4

CONTOH KELUARAN 3

3
PENJELASAN
Pada contoh pertama, misil pert ama (dengan jangkauan 1 2) dapat dipakai untuk menghancurkan rumah
bernomor 1, sedangkan rumah bernomor 5 t idak mungkin dihancurkan oleh misil kedua (dengan
jangkauan 9 12) maupun ket iga (dengan jangkauan 8 11) karena nomornya t idak ada di dalam jangkauan
kedua misil t ersebut ; namun salah sat u dari misil kedua at au ket iga dapat digunakan untuk
menghancurkan rumah bernomor 10.
Pada contoh kedua, misil pert ama dapat dipakai untuk menghancurkan rumah bernomor 5, misil kedua
unt uk rumah bernomor 1, dan misil ket iga unt uk rumah bernomor 2. Sedangkan pada contoh ket iga, misil
pert ama dapat dipakai untuk menghancurkan rumah bernomor 1, misil kedua untuk rumah bernomor 5,
dan misil ket iga untuk rumah bernomor 2.

Halaman 6 dari 11

Sesi 3

OSN IX

Waterfall
Kode soal: osn1016.PAS/ C/ CPP
Batas Run-time: 1 detik / t est -case
Batas M emori: 32 M B

Sehari sebelum pembagian medali pada Olimpiade Sains Nasional 2010, adalah hari wisat a edukasi. Di
salah sat u lokasi wisat a edukasi, Pak Dengklek melihat suat u air t erjun buat an.
Air t erjun itu mengalir sepanjang t ebing yang dapat digambarkan sebagai pet a berbent uk mat riks dengan
ukuran V (secara vert ikal) kali H (secara horisont al). Pada t ebing t ersebut dit empelkan beberapa batu
buat an pula (karena air t erjunnya pun buat an). Bat u buatan t ersebut masing-masing berbent uk kot ak yang
dinyat akan dengan kot ak kiri at as dan kanan bawahnya pada pet a t ebing.
Perhat ikan ilust rasi di baw ah ini yang menggambarkan sebuah air t erjun pada t ebing berukuran 5 kali 5
dari kotak (1,1) sampai dengan kot ak (5,5). Terdapat tiga bat u buat an di posisi (2,3)-(2,4), (4,2)-(5,2), (5,5)(5,6).

Air t erjun t ent u t idak lengkap t anpa air itu sendiri, maka air pun perlu dit et eskan dari suat u tit ik pangkal di
bagian t ebing. Secara spesifik, air akan mulai ditet eskan dari sebuah kot ak (-1,X). Air t ersebut kemudian
mungkin menabrak suat u batu. Jika t abrakan itu t erjadi, t et esan air akan pecah menjadi dua (dan kedua
t et esan t ersebut sejak it u dianggap sebagai dua t et es air t erpisah; w alau suatu saat mereka mungkin
bert emu, mereka t et ap dianggap dua t et es air yang t erpisah). Salah sat u sat u t et esan air kemudian lanjut
menet es dari sisi kiri batu dan satunya lagi lanjut menet es dari sisi kanan batu. Hal t ersebut bisa t erjadi
berulang-ulang sampai t et esan air mencapai dasar air t erjun.
Set iap kali air menabrak suat u batu, t imbullah suara bergemericik. Pak Dengklek yang merasa bahw a air
t erjun akan semakin indah jika semakin lebat suara gemericiknya, mengharapkan t abrakan ant ara air dan
batu t erjadi sebanyak mungkin. Bant ulah Pak Dengklek menent ukan di kot ak mana air harus mulai
dit et eskan agar t erjadi sebanyak mungkin t abrakan ant ara air dan batu. Sepert i dapat dilihat pada ilust rasi
di at as, jika Pak Dengklek m enet eskan air dari kot ak (-1, 3) akan t erjadi 3 t abrakan, sedangkan jika dari
kot ak (-1, 2) hanya akan t erjadi 1 t abrakan. Tabrakan dengan dasar air t erjun t idak dihitung.

FORMAT MASUKAN

Halaman 7 dari 11

Sesi 3

OSN IX

Baris pert ama berisi t iga buah bilangan bulat, V , H , dan N (1 ≤ V , H ≤ 500) yang merupakan ukuran peta air
t erjun secara vert ikal, ukuran pet a air t erjun secara horisont al, dan banyaknya bat u. N baris berikut nya
masing-masing berisi empat buah bilangan bulat v1 , h 1 , v2 , h2 (semua berada di dalam jangkauan pet a)
yang menyat akan kot ak kiri at as dan kanan bawah dari batu t ersebut . Dijamin tidak ada dua buah bat u
yang menempel at au bersent uhan satu sama lain sehingga air selalu bisa mengalir.

FORMAT KELUARAN
Sebuah bilangan bulat yang menyat akan banyaknya t abrakan maksimal yang dapat t erjadi ant ara air dan
batu jika mulainya t et esan air diatur sedemikian rupa. Bilangan bulat t ersebut dijamin t idak lebih besar dari
10

15

dan untuk lima puluh persen keluaran bilangan bulat t ersebut dijamin tidak lebih besar dari 5000.

CONTOH MASUKAN

6
2
4
5

6
3
2
5

3
2 4
5 2
5 6

CONTOH KELUARAN

3
PENJELASAN
Contoh kasus sesuai dengan ilust rasi pada deskripsi soal, t idak ada t itik penet esan lain yang dapat
menghasilkan t abrakan lebih dari 3 kali.

Halaman 8 dari 11

Sesi 3

OSN IX

Password
Kode soal: osn1017.PAS/ C/ CPP
Batas Run-time: 1 detik / t est -case
Batas M emori: 16 M B

Olimpiade Sains Nasional 2010 pun berakhir, Pak Dengklek hendak pulang. Sayangnya, ia lupa password
pintu kamarnya. Sebagai informasi, pintu kamar panitia diberi passw ord khusus untuk alasan keamanan
berkas soal dan hasil. Dan lebih uniknya, bukan hanya untuk masuk, untuk keluar pun pintu kamar tersebut
memint a passw ord.
Passw ord dalam hal ini t erdiri dari t epat 4 buah digit , dan set iap digit adalah bilangan bulat ant ara 0
sampai dengan 9 (t ermasuk mungkin 0 at au 9 itu sendiri). Jika seseorang salah menebak password
t ersebut , maka secara ot omat is passw ord t ersebut akan mengubah diri menjadi selisih mutlak ant ara
passw ord sebelumnya dengan t ebakan yang baru diberikan. Perhitungan selisih mutlak ini dilakukan
dengan menganggap set iap password adalah sebuah bilangan bulat. Contoh: passw ord semula adalah
0010 dan passw ord t ebakan adalah 0104, maka passw ord pint u kamar Pak Dengklek selanjutnya berubah
menjadi 0094; perubahan yang sama akan diperoleh jika password semula adalah 0104 dan sebaliknya
t ebakan adalah 0010 (ingat selisih mut lak).
Bantulah Pak Dengklek untuk keluar dari kamarnya sehingga ia dapat pulang.

INFORMASI TIPE SOAL
Tipe soal sepert i ini biasa disebut " int erakt if". Pada soal ini Anda akan berint eraksi dengan program penguji
melalui st andard input dan st andard out put . Perhat ikan format masukan dan keluaran di bawah ini dengan
seksama.

FORMAT MASUKAN DAN KELUARAN
Pada saat program Anda dimulai, mulailah menebak dengan mencet ak sebuah passw ord yang t erdiri dari
empat buah digit bilangan bulat. Selanjutnya, bacalah sebuah kat a yang ant ara lain "t erkunci" at au
" pulang". Jika kalimat yang Anda baca adalah "pulang" , t idak perlu ada kelanjut an dari program Anda
(dengan kat a lain, program Anda harus berakhir dan t entunya program Anda mendapat kan nilai untuk
kasus t ersebut ). Sedangkan jika kalimat yang Anda baca adalah " t erkunci", Anda perlu menebak lagi dan
set erusnya. Jika sam pai 15 kali Anda menebak belum pernah ada kat a " pulang" , program Anda akan
dihentikan secara paksa oleh program penguji dan t ent unya program Anda t idak mendapat kan nilai (at au
mendapatkan nilai nol) unt uk kasus t ersebut .
Pet unjuk " bacalah" dan " mencet ak" yang dijelaskan di at as dapat Anda lakukan dengan menggunakan
perint ah st andard sepert i w rit e, w rit eln, scanf, print f, dll selayaknya Anda mengerjakan soal biasa. Yang
perlu diperhat ikan adalah bahwa unt uk t ipe soal int erakt if sepert i ini, Anda harus selalu memberikan
perint ah "fflush(st dout );" (bagi pengguna C/ C++) at au "flush(out put );" (bagi pengguna PASCAL) set iap kali
Anda mencet ak keluaran (dengan kat a lain, set iap kali ada perint ah w rit e/ writ eln/ scanf/ print f/ dll, t epat di
baw ahnya harus ada perint ah fflush/ flush).
Halaman 9 dari 11

Sesi 3

OSN IX

Berikut ini adalah cont oh kode program dalam bahasa PASCAL yang akan selalu menebak password 2500
sampai mendapat kan kat a "pulang":

var hasil:string;
begin
hasil:='';
while (hasil'pulang') do
begin
writeln('2500');
flush(output);
readln(hasil);
end;
end.
Dan berikut ini dalam bahasa C/ C++:

char hasil[20];
int main(){
strcpy(hasil,"");
while (strcmp(hasil,"pulang")0){
printf("2500\n");
fflush(stdout);
gets(hasil);
}
return 0;
}
CONTOH INTERAKSI 1

KELUARAN ANDA - KELUARAN PENGUJI
2500
terkunci
2500
terkunci
2500
pulang
CONTOH INTERAKSI 2

KELUARAN ANDA - KELUARAN PENGUJI
2500
terkunci
2500
terkunci
2500
terkunci
2500
terkunci
2500
terkunci
2500
terkunci
2500
terkunci
Halaman 10 dari 11

Sesi 3

OSN IX

2500
terkunci
2500
terkunci
2500
terkunci
2500
terkunci
2500
terkunci
2500
terkunci
2500
terkunci
2500
terkunci
program dihentikan secara paksa di titik ini karena telah mencoba menebak
sebanyak 15 kali
PENJELASAN
Pada contoh pert ama, passw ord mula-mula adalah 7500, berikut nya berubah menjadi 5000 (7500 - 2500),
berikut nya berubah menjadi (5000 - 2500), dan akhirnya t erjaw ab dengan benar.
Sedangkan pada cont oh kedua, passw ord mula-mula adalah 1500, berikutnya berubah menjadi 1000
(2500-1500), berikut nya berubah menjadi 1500 lagi (2500-1000), dan set erusnya.

Halaman 11 dari 11