OSN 2010 OSN 2010 Sesi 2

10 

Loading.... (view fulltext now)

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

SOAL SESI 2

OLIMPI ADE SAI NS NASI ONAL I X

BI DANG I NFORMATI KA

3 AGUSTUS 2010

MEDAN, SUMATERA UTARA

(2)

Melukis

Kode soal: osn1005.PAS/ C/ CPP Batas Run-time: 1 detik / t est -case

Batas M emori: 16 M B

Buat lah sebuah program yang akan m enimpa nilai dari m at riks berukuran W x H sebanyak N langkah. Pada set iap langkah diberikan posisi pojok kiri at as (Left, Top) dan paling kanan-baw ah (Right, Bottom) dari area persegi yang akan ditimpa dengan nilai K. Keluaran adalah kondisi akhir mat riks set elah langkah ke-N

dijalankan.

FORMAT MASUKAN

Baris pert ama berisi dua buah bilangan bulat , W (1

W

20) dan H (1

H

≤ 20). Baris kedua berisi sebuah

bilangan bulat N (1

N

≤ 20).

N baris berikut nya berisi lim a buah bilangan bulat Ai, Bi, Ci, Di dan Ki (1

Ai

Ci

W , 1

Bi

Di

H) dimana (Ai, Bi) m elam bangkan koordinat (Left, Top), (Ci, Di) m elambangkan

koordinat (Right, Bottom) dan Ki nilai yang harus dit impakan.

FORMAT KELUARAN

H baris yang m asing-masing t erdiri at as t epat W karakt er t anpa dipisahkan oleh spasi yang m enggam barkan kondisi akhir mat riks.

CONTOH MASUKAN

5 4 3

1 1 2 2 3 2 2 3 3 4 5 1 5 4 3

CONTOH KELUARAN

(3)

Pecahan Uang

Kode soal: osn1006.PAS/ C/ CPP Batas Run-time: 1 detik / t est -case

Batas M emori: 16 M B

Diberikan sebuah nilai uang dalam dolar sebesar K. Buatlah sebuah program yang akan m engh asilkan pecahan dolar bernilai tot al K dengan m em akai uang pecahan t erbesar. Jika uang pecahan t erbesar t idak dapat dipakai (karena jum lah uang akan melebihi pecahan t erbesar), maka diam bil pecahan yang lebih kecil, dan set erusnya.

Pecahan yang t ersedia adalah 1 dolar, 2 dolar, 5 dolar, 10 dolar, 20 dolar, 50 dolar, 100 dolar, 200 dolar, 500 dolar, dan 1000 dolar. sebuah spasi. Bilangan pert ama adalah pecahan uang dan bilangan kedua adalah banyak lem bar pecahan uang t ersebut . Urut kanlah baris-baris berdasarkan pecahan uang, dari besar ke kecil. Pecahan uang yang t idak digunakan t idak perlu ditulis.

(4)

Ber at Bebek

Kode soal: osn1007.PAS/ C/ CPP Batas Run-time: 1 detik / t est -case

Batas M emori: 16 M B

Set iap bulan, Posyanbedu (Pos Pelayanan Bebek Terpadu) unit Pak Dengklek m engadakan penimbangan badan rutin untuk m enget ahui kondisi kesehat an umum bebek-bebek di suatu kandang. Bebek-bebek akan dibariskan berdasarkan lokasi kandangnya dan dit imbang sat u per sat u. Jumlah bebek dan kandang yang sangat banyak mem buat Pak Dengklek kebingungan mendat a berat t eringan dan t erberat bebek dari suat u lokasi kandang. Bantulah Pak Dengklek m endat a bebek-bebeknya t ersebut .

FORMAT MASUKAN bebek t eringan dan bebek t erberat dari sem ua bebek di kandang t ersebut dipisahkan oleh sebuah spasi. M asukan dijamin t idak lebih dari 1 000 000 baris.

(5)

Keluar ga Bebek

Kode soal: osn1008.PAS/ C/ CPP Batas Run-time: 1 detik / t est -case

Batas M emori: 16 M B

Saat mem ulai usaha pet ernakan bebeknya dulu, Pak Dengkl ek hanya m emiliki beberapa ekor bebek saja. Sekarang, bebeknya t elah beranak pinak hingga rat usan, bahkan ribuan. Sampai -sam pai m ereka sudah lupa dengan leluhur dan keluarga aslinya.

Pak Dengkl ek berinisiat if m em bantu bebek-bebeknya untuk m enem ukan saudara-saudara sedarah m ereka dengan m encocokkan DNA-nya. Setiap bebek mem iliki kode DNA yang unik Ai (1

Ai

2 000 000 000). Dua

bebek dikat akan berasal dari sat u keluarga yang sam a jika selisih DNA-nya kurang dari D (1

D

10 000). Jika bebek X sat u keluarga dengan bebek Y, dan bebek Y sat u keluarga dengan bebek Z, m aka dapat dipast ikan bebek X, Y dan Z ket iganya berasal dari keluarga yang sama. Bantulah Pak Dengklek m enentukan banyak keluarga/ leluhur yang berbeda dari sem ua bebek-bebeknya.

FORMAT MASUKAN

Baris pert ama berisi dua buah bilangan bulat N (1

N

100 000) yang m enyat akan banyak bebek dan D (2

D

10 000) yang m enyat akan bat as t oleransi kesamaan DNA beb ek. N baris berikut nya masing-masing berisi sebuah bilangan bulat Ai (1

Ai

2 000 000 000) yang merepresent asikan kode DNA bebek dan

t erurut dari kecil ke besar.

FORMAT KELUARAN

Sebuah bilangan bulat yang menyat akan jumlah keluarga berbeda dari bebek-bebek Pak Dengklek.

(6)

Pasar Rakyat

Kode soal: osn1009.PAS/ C/ CPP Batas Run-time: 1 detik / t est -case

Batas M emori: 16 M B

Desa Pak Dengklek sering kedat angan para pedagang dari berbagai daerah. Pedagang-pedagang ini dat ang m engunjungi desa Pak Dengklek secara periodik dalam beberapa hari sekali. Set iap pedagang mempunyai perioda m asing-masing (mungkin ada pedagang yang menet apkan perioda yang sama walaupun pada umum nya berbeda). Akibatnya bisa t erjadi, semua pedagang dat ang di hari yang bersam aan. Saat itu lah sebuah pasar besar digelar dengan sebut an Pasar Rakyat .

Pak Dengkl ek sangat suka belanja dan selalu m enant ikan dat angnya Pasar Rakyat. Kebet ulan, hari ini Pasar Rakyat kem bali digelar dan hampir mencapai penghujungnya. Pak Dengklek yang t idak sabar m enunggu, m ulai sibuk m enghitung, berapa hari lagikah Pasar Rakyat akan kembali digelar?

FORMAT MASUKAN

Baris pert ama masukan berisi sebuah bilangan bulat N (2

N

20) yang m enyat akan banyak pedagang yang mengunjungi desa Pak Dengklek. N baris berikutnya m asing-masing berisi sebuah bilangan Di (1

Di

100 000) yang m enyat akan periode kunjungan pedagang ke-i.

FORMAT KELUARAN

Sebuah bilangan bulat yang merupakan banyak hari berikutnya dimana Pasar Rakyat akan diadakan apabila hari ini adalah hari penyelenggaraan Pasar Rakyat. Keluaran dijam in t idak akan lebih dari 100 000.

CONTOH MASUKAN

3 2 4 5

CONTOH KELUARAN

(7)

Penjumlahan

Kode soal: osn1010.PAS/ C/ CPP Batas Run-time: 1 detik / t est -case

Batas M emori: 32 M B

Tipe dat a 32-bit int eger (biasanya bernama long pada bahasa C/ C++ dan longint pada Pascal) hanya m am pu m enyimpan angka sampai sekit ar 2 milyar. Kali ini Anda ditugaskan untuk m embuat operasi penjumlahan pada bilangan bulat posit if yang bisa jauh lebih besar daripada 2 milyar.

FORMAT MASUKAN

Baris pert ama berisi sebuah bilangan bulat positif dengan panjang minim al 1 digit dan panjang maksimal 100 digit . Baris kedua berisi sebuah bilangan bulat posit if dengan panjang minim al 1 digit dan panjang m aksim al 100 digit . Digit pert ama dari bilangan bulat yang diberikan tidak mungkin 0 (nol).

FORMAT KELUARAN

Sebuah baris berisi hasil penjumlahan dari kedua bilangan bulat yang diberikan pada m asukan. Digit pert am a dari bilangan bulat yang dikeluarkan t idak boleh 0 (nol).

CONTOH MASUKAN 1

100 50

CONTOH KELUARAN 1

150

CONTOH MASUKAN 2

11

1999999999

CONTOH KELUARAN 2

(8)

Susu Cap Dengklek

Kode soal: osn1011.PAS/ C/ CPP Batas Run-time: 1 detik / t est -case

Batas M emori: 16 M B

Pak Dengklek menjalin kerja sam a dengan sahabat jauhnya, meluncurkan produk susu kaleng impor berbent uk silinder dengan merek lokal “ Susu Cap Dengklek” . Unt uk m enarik m inat pem beli, Pak Dengklek m engadakan kuis berhadiah dengan m eluncurkan beberapa susu kaleng limit ed edition.

Susu ini m em iliki label khusus dengan gambar sebuah m at riks yang set elah dilekat kan pada kalen g berbent uk silinder t ersebut akan m em bent uk m at riks sirkuler berukuran M x N (1

M, N

50) yang m elingkar di sekeliling kalengnya.

Tujuan dari kuis ini adalah m enem ukan sebuah nilai maksimum yang dapat dibent uk dari penjum lahan elem en-elem en subm at riks ukuran B x K dari mat riks sirkuler pada label kaleng. Bisakah Anda m enyelesaikan kuis Pak Dengklek ini?

FORMAT MASUKAN

Sebuah bilangan bulat yang m enyat akan jum lah maksimum yang dapat dibentuk dari submat riks B x K dari m at riks yang diberikan di masukan.

(9)

Wildcar d

Kode soal: osn1012.PAS/ C/ CPP Batas Run-time: 1 detik / t est -case

Batas M emori: 16 M B

Dalam pencocokan st ring, karakter ast erisk (* ) sering dipakai sebagai karakt er w ildcard (karakt er yang dapat dicocokan dengan nol at au lebih karakt er apa saja). M isalnya, ma* dapat dicocokan dengan m akan, m akanan, m ain, m a. Namun, ma* t idak dapat dicocokkan dengan m inum , mula, ham a. Tanda asterisk ini dapat berada di depan, t engah, at au belakang dari pat t ern yang akan dicari.

Buat lah program yang diberikan sebuah patt ern dan daft ar kat a-kat a yang akan dicocokkan dengan pat t ern

t ersebut , m engeluarkan kat a-kat a yang berhasil dicocokan.

FORMAT MASUKAN

Baris pert ama berisi sebuah st ring yang panjangnya minim al 1 dan m aksim al 100 karakt er. Dijamin bahw a st ring ini t epat m engandung sebuah karakt er asterisk (* ) dan karakt er-karakt er lainnya adalah ‘a’-‘z’ (huruf kecil). St ring ini adalah patt ern untuk dicocokkan dengan st ring-st ring berikut nya.

Baris kedua berisi sebuah bilangan bulat N (1

N

≤ 100).

N baris berikut nya masing-m asing berisi sebuah st ring yang panjangnya minimal 1 dan maksim al 100 karakt er. St ring-st ring ini adalah st ring-st ring yang akan dicocokkan dengan pat t ern. Dijamin bahw a set iap karakt er adalah ‘a’-‘z’ (huruf kecil).

FORMAT KELUARAN

(10)

makan hama

CONTOH KELUARAN 2

Figur

Memperbarui...

Referensi

Memperbarui...