Anda di halaman 1dari 9

Random Generator

Batas Waktu

2 detik

Batas Memori

16 MB

Adly memiliki sebuah mesin penghasil bilangan acak, "The Random Generator". The Random
Generator akan menghasilkan sebuah bilangan acak dalam basis 2 yang memiliki panjang N digit.
Algoritme yang digunakan untuk menghasilkan bilangan acak tersebut, yakni dengan menghasilkan
sebuah angka acak (0 atau 1) untuk setiap digitnya. Karena sedang mengalami kerusakan,
probabilitas mesin tersebut menghasilkan angka 1 untuk setiap digitnya adalah P%.
Tentukan expected value bilangan acak yang dihasilkan mesin tersebut!

Format Masukan
Baris pertama berisi T, yaitu banyaknya kasus uji.
T baris berikutnya masing-masing berisi dua bilangan bulat N dan P.

Format Keluaran
Untuk setiap kasus uji, keluarkan expected value bilangan acak yang dihasilkan The Random
Generator. Anda dapat mengeluarkan berapa pun angka di belakang penanda desimal. Jawaban
Anda dianggap benar jika selisih mutlak atau selisih relatif jawaban Anda dengan jawaban juri kurang
dari 10-6.

Contoh Masukan
3
3 50
7 100
1 15

Contoh Keluaran
3.500000000
127.000000000
0.150000000

Batasan

1 T 10000

1 N 50

0 P 100

Distortion World
Batas Waktu

5 detik

Batas Memori

64 MB

Siapa yang tidak tahu tentang Ramma, The Mathematics' Boss. Selama ini tidak ada satu pun soal
matematika yang tidak dapat Ramma selesaikan. Kehidupan sehari-harinya hampir dapat dipastikan
selalu berhubungan dengan matematika.
Sekarang Ramma secara ajaib terjebak dalam suatu dunia yang lain. Ramma merasa pernah melihat
dunia yang mirip dengan dunia tersebut. Setelah cukup lama berpikir, Ramma berasumsi bahwa saat
ini dia berada di Distortion World; mirip dunia-dimensi-lain dalam permainan Pokemon yang pernah
dimainkannya.
Untuk membuktikan asumsinya, Ramma mulai mencoba hal-hal yang aneh. Dia mencoba berjalan di
dinding, bahkan sampai ke langit-langit, tetapi tidak terjatuh. Dengan kata lain, Ramma dapat berjalan
pada semua sisi permukaan-dalam dunia tersebut. Karena Ramma sangat ahli dalam berhitung, dia
pun akhirnya mengetahui bahwa Distortion World berbentuk kubus dengan panjang rusuk N dan dia
sedang berada pada salah satu sisi permukaan-dalam dunia tersebut.
"Ramma...!" Terdengar teriakan seorang wanita. Ramma yang mendengar teriakan tersebut pun yakin
bahwa Karina, kekasihnya, juga berada di Distortion World. Sedihnya, terdapat beberapa tempat yang
tidak dapat dilewati dalam dunia tersebut dan Ramma tidak selalu dapat melihat Karina. Akan tetapi,
dengan semangat cinta mereka, Ramma dapat mengetahui keberadaan Karina, di mana pun Karina
berada.
Ramma ingin mengetahui banyaknya langkah minimum yang diperlukan untuk mencapai tempat
Karina berada. Satu langkah yang sahih adalah perpindahan dari koordinat (x 1, y1, z1) menuju
koordinat (x2, y2, z2) dimana |x1x2| + |y1y2| + |x1y2| = 1 DAN koordinat (x1, y1, z1) dan (x2, y2, z2) terletak
pada permukaan-dalam sisi kubus. Sebuah posisi (x, y, z) berada di permukaan sisi kubus jika
minimal satu dari x, y, atau z bernilai 1 atau N. Bantulah Ramma mendapatkan Karina kembali!

Format Masukan
Baris pertama berisi sebuah bilangan bulat T, yaitu banyaknya kasus uji.
Untuk setiap kasus uji, baris pertama berisi sebuah bilangan bulat N yang menyatakan panjang
rusuk Distortion World. Baris berikutnya berisi sebuah bilangan bulat M yang menyatakan banyaknya
tempat yang tidak dapat dilewati. M baris berikutnya berisi tiga buah bilangan bulat xi, y , dan zi yang
menyatakan koordinat tempat-tempat yang tidak dapat dilewati. Baris berikutnya berisi tiga buah
bilangan bulat xR, yR, dan zR yang menyatakan koordinat posisi Ramma sekarang. Baris berikutnya
berisi tiga buah bilangan bulat xK, yK, dan zK yang menyatakan koordinat posisi Karina sekarang.
Dijamin bahwa koordinat (xR, yR, zR) dan (xK, yK, zK) merupakan koordinat pada permukaan sisi kubus.
i

Format Keluaran

Untuk setiap kasus uji, keluarkan sebuah bilangan bulat yang menyatakan jumlah langkah minimum
yang diperlukan Ramma untuk mencapai posisi Karina. Jika Ramma tidak dapat bertemu Karina,
keluarkan -1 .

Contoh Masukan
1
5
1
1 1 1
1 2 3
1 3 3

Contoh Keluaran
1

Penjelasan
Pada contoh masukan, Ramma dan Karina berada pada posisi yang bersebelahan sehingga Ramma
hanya membutuhkan 1 langkah untuk mencapai tempat Karina.

Batasan

1 T 10

2 N 400

0 M min(100000, N3 (N2)3 2)

1 xi, yi, zi, xR, yR, zR, xK, yK, zK N

Dijamin koordinat posisi awal Ramma dan koordinat posisi awal Karina bukan merupakan
tempat yang tidak dapat dilewati

Auto Complete
Batas Waktu

1 detik

Batas Memori

32 MB

League of Doom kembali menyerang Kota CompFest! Banyak korban berjatuhan dan keluargakeluarga mulai panik mencari sanak saudaranya. Untuk mempermudah pencarian keluarga korban,
walikota telah memerintahkan seorang pemrogram untuk membuat sebuah mesin pencari (search
engine). Mesin pencari tersebut berfungsi untuk mencari suatu nama di daftar nama korban agar

dapat ditentukan kemudian apakah nama tersebut merupakan nama seorang korban. Namun sayang,
mesin pencari tersebut belum dapat memperbaiki kesalahan ketik pengguna secara otomatis
sehingga efektivitasnya berkurang.
Untuk meningkatkan efektivitasnya, Anda diminta untuk memutakhirkan mesin pencari tersebut agar
dapat melakukan operasi perbaikan otomatis pada masukan kata-pencarian pengguna. Operasi
perbaikan yang dimaksud mencakup
1. operasi replace untuk mengganti sebuah huruf pada masukan pengguna dengan huruf yang lain;
2. operasi insert untuk menambahkan sebuah huruf pada masukan pengguna;
3. operasi delete untuk menghapus sebuah huruf pada masukan pengguna.
Server 'peladen' yang digunakan untuk mesin pencari tersebut tidaklah sehebat yang dibayangkan.
Untuk setiap pencarian, servertersebut hanya mampu melakukan paling banyak R, I, dan D kali
operasi replace, insert, dan delete secara berturut-turut. Biaya keseluruhan operasi perbaikan yang
dilakukan server untuk setiap pencarian pun tidak dapat melebihi C; dengan asumsi setiap
operasireplace memerlukan biaya 2, setiap operasi insert memerlukan biaya 1, dan setiap
operasi delete memerlukan biaya 1.
Sebelum digunakan, sekretaris kota akan memasukan W buah nama ke dalam daftar nama korban.
Kemudian, petugas penyelamat kota akan mengetikkan sebuah kata pencarian pada mesin pencari
tersebut. Mesin pencari tersebut akan mencoba untuk melakukan operasi-operasi perbaikan untuk
mencocokkan (menyamakan) kata pencarian tersebut dengan setiap nama pada daftar nama korban.
Nama dalam daftar nama korban yang dapat dicocokan dengan jumlah biaya operasi
perbaikan terkecil akan dikeluarkan sebagai jawaban. Jika terdapat dua atau lebih nama dalam daftar
nama korban yang dapat dicocokan dengan jumlah biaya terkecil, hanya nama dengan urutan
leksikografis terkecil yang akan dikeluarkan. Jika tidak ada satu pun nama dalam daftar nama korban
yang dapat dicocokkan dengan kata pencarian, mesin tersebut akan mengeluarkan Tidak Ada
Korban .

Format Masukan
Baris pertama berisi sebuah bilangan bulat T, yaitu banyaknya kasus uji.
Untuk setiap kasus uji, baris pertama berisi kata pencarian yang dimasukkan pengguna. Baris
berikutnya adalah sebuah bilangan bulat W. W baris berikutnya merupakan nama-nama korban yang
terdaftar di daftar nama korban. Baris berikutnya berisi empat buah bilangan bulat C, R, I, dan D.
Nama-nama korban dan kata pencarian pengguna dijamin hanya mengandung karakter alfabet huruf
kecil (a-z), tidak mengandung spasi, dan panjangnya tidak melebihi 10.000 karakter.

Format Keluaran
Untuk setiap kasus uji, cetaklah keluaran mesin pencari.

Contoh Masukan
2
terre
4
ferde
marko
toni

tere
1 1 1 1
tulul
4
ferde
marko
toni
tere
10 5 5 5

Contoh Keluaran
tere
tere

Penjelasan
Pada kasus uji pertama, hanya nama tere dalam daftar nama korban yang dapat dicocokkan oleh
mesin pencari. Jumlah biaya operasi perbaikan yang dilakukan adalah 1, yaitu dengan dengan
menghapus satu huruf "R" pada kata pencarian terre .
Pada kasus uji kedua, nama dalam daftar nama korban yang dapat dicocokkan oleh mesin pencari
dengan jumlah biaya operasi perbaikan terkecil adalah tere dan toni (sama-sama membutuhkan
jumlah biaya 7). Namun, karena kata tere memiliki urutan leksikografis yang lebih kecil daripada
kata toni , kata tere yang dikeluarkan sebagai jawaban.

Batasan

1T2

1 W 10000

Total panjang dari seluruh W string dalam satu kasus tidak melebihi 10.000

Total panjang dari kata pencarian dalam satu kasus tidak melebihi 10.000

1 C 40

0 R, I, D 10

Main Batu Lagi


Batas Waktu

2 detik

Batas Memori

128 MB

Marko dan Ferde adalah dua orang sahabat yang senang bermain board games bersama. Kali ini,
Marko membawa board game favorit mereka berdua, yaitu "Batuman".
Perlengkapan permainan Batuman adalah sebagai berikut.
1.

2.

Terdapat sebuah papan permainan panjang berukuran 1 N inci yang diberi pola kotak-kotak
(grid) untuk setiap 1 1 inci dari posisi 0 inci. Petak-petak 1 1 inci tersebut dinomori dari 1
hingga N. Untuk setiap petak bernomor i (kecuali petak bernomor 1), terdapat dua buah bilangan
ai dan bi.
Terdapat M buah bidak Batuman.

Cara bermain Batuman adalah sebagai berikut.


1.

Bentangkan papan permainan.

2.

Sebarkan semua bidak pada papan tersebut sehingga setiap bidak menempati salah satu
petak pada papan permainan.

3.

Secara bergantian mulai dari pemain pertama, buat sebuah langkah. Sebuah langkah dalam
permainan ini adalah memindahkan sebuah Batuman dari petak i menuju petak j, dimana a i j
bi. Setiap petak dapat ditempati oleh tak hingga banyak Batuman.

4.

Batuman yang telah jatuh pada petak bernomor 1 tidak dapat digerakkan lagi.

5.

Pemain yang kalah adalah pemain yang tidak dapat melakukan langkah lagi.

Diberikan konfigurasi posisi awal M buah Batuman. Jika Marko adalah pemain yang mendapat giliran
pertama, siapakah yang akan menang?
Sebagai informasi tambahan, Marko dan Ferde adalah pemain Batuman yang sangat andal. Masingmasing dari mereka tidak akan pernah sengaja membuat langkah yang dapat menyebabkan
kekalahan, kecuali jika tidak ada langkah lain.

Format Masukan
Baris pertama masukan berisi sebuah bilangan bulat T, yaitu banyaknya kasus uji.
Untuk setiap kasus uji, baris pertama berisi dua buah bilangan bulat N dan M. (N1) baris berikutnya
masing-masing berisi dua buah bilangan bulat ai dan bi dimana ai dan bi pada baris ke-i (1 i N1)
menyatakan nilai ai dan bi pada petak ke-(i+1).[1] Baris terakhir untuk setiap kasus uji berisi M buah
bilangan bulat yang menyatakan konfigurasi awal bidak-bidak Batuman.

[1]

Petak pertama tidak memiliki nilai ai dan bi.

Format Keluaran
Untuk setiap kasus uji, keluarkan Marko jika Marko pasti menang atau Ferde jika Ferde pasti
menang pada setiap barisnya.

Contoh Masukan
2
5 2
1 1
1 2
1 3
4 4
3 5
5 2
1 1
1 2
1 3
4 4
1 5

Contoh Keluaran
Marko
Ferde

Batasan

1T6

1 N 100000

1 M 100000

Untuk setiap i, ai bi < i

Untuk setiap i dan j dimana i < j, ai aj dan bi bj

Peringatan
Ukuran masukan untuk soal ini cukup besar. Disarankan untuk menggunakan metode input, output,
dan/atau input parsing yang cepat ( scanf() untuk input dan printf() untuk output pada C+
+; bufferedReader untuk input dan StringTokenizer untuk input parsing pada Java).

Toni vs Tere
Batas Waktu

1 detik

Batas Memori

32 MB

Toni dan Tere adalah sepasang kekasih yang fenomenal di Kota CompFest. Jika masih hidup, usia
mereka sudah menginjak angka 80 tahun. Sudah 40 tahun berlalu sejak mereka menikah dan sudah
40 tahun berlalu pula mereka menjabat sebagai walikota dan wakil walikota di Kota CompFest. Pada
kenyataannya, mereka berdua adalah pasangan terpilih pertama yang ditunjuk untuk membangun
Kota CompFest.
Toni dan Tere pertama kali bertemu secara tidak sengaja saat mereka bersama-sama mencalonkan
diri menjadi walikota pertama Kota CompFest. Ya, pada zaman dahulu rakyat Kota CompFest merasa
lebih baik dipimpin hanya oleh satu orang saja, yaitu walikota tanpa wakilnya. Karena keduanya
memiliki banyak sekali perbedaan pemikiran dan sama-sama kuat, maka sangat sulit untuk
menentukan siapa di antara mereka berdua yang lebih pantas menjadi walikota Kota CompFest. Oleh
karena itu, diputuskan untuk diselenggarakan pemilihan walikota secara voting dengan masa
kampanye satu bulan.
Setiap rakyat Kota CompFest yang sudah memiliki KTP berhak memberikan satu suara kepada salah
satu calon walikota yang menurutnya lebih baik. Calon walikota yang memperoleh paling sedikit 50%
dari jumlah suara yang masuk ditambah satu suara akan dilantik secara resmi menjadi walikota Kota
CompFest. Apabila tidak ada calon walikota yang memenuhi kriteria tersebut, akan
dilaksanakan voting ulang.
Karena calon walikota hanya mereka berdua, tentu saja masa kampanye merupakan masa yang
paling "panas" bagi Kota CompFest. Pertengkaran, perselisihan, dan saling membeda-bedakan
merupakan hal yang sangat sering terjadi pada saat itu. Toni dan Tere merasa sedih dan kecewa
dengan hal itu. Kota CompFest yang belum saja dilahirkan sudah terpecah-belah. Meskipun Toni
maupun Tere sudah meminta para pendukungnya untuk bersatu, tetap saja persatuan adalah hal
yang hampir mustahil untuk diwujudkan. Sungguh mengerikan dan mengenaskan.
Hari itu, tepat satu minggu sebelum pemilihan walikota berlangsung, merupakan hari bersejarah bagi
Kota CompFest. Toni dan Tere menikah, disaksikan oleh seluruh rakyat kota CompFest yang tidak
percaya akan berita tersebut. Tentu saja, mereka merasa malu di hadapan kedua kekasih tersebut.
Cinta antara Toni dan Tere membawa keharmonisan untuk Kota CompFest. Persatuan mereka
merupakan simbol nyata bahwa Kota CompFest dapat bersatu untuk selamanya.
Cerita tidak hanya berhenti sampai situ. Di hadapan para pendukungnya, Toni mengungkapkan hal
yang sangat mencengangkan. "Wahai para pendukungku, apabila kalian percaya kepadaku, maka
percayakan kekasihku, Tere, untuk maju sebagai walikota karena aku mencintainya." Bahkan Tere
pun mengungkapkan hal yang sama! "Wahai para pendukungku, apabila kalian percaya kepadaku,
maka percayakan kekasihku, Toni, untuk maju sebagai walikota karena aku mencintainya."
Tentu saja pemilihan walikota berjalan dengan sangat damai dan menyenangkan. Seluruh rakyat pun
ternyata menjalankan apa yang diperintahkan oleh yang didukungnya. Lucu sekali karena pada
akhirnya keduanya "sama-sama menang": salah satu menang karena lebih banyak orang yang
menjadi pendukung setianya dan satu lagi menang karena lebih banyak orang yang memberikan
suaranya kepadanya. Karena hal tersebut, maka diputuskan bahwa Kota CompFest akan dipimpin
oleh walikota dan wakil walikota.
Nah, sekarang mari kita berandai-andai. Andaikan pendukung setia Toni berjumlah X orang dan
pendukung setia Tere berjumlah Y orang. Tentukanlah siapa yang menjadi walikota pertama kota
CompFest!

Format Masukan
Baris pertama berisi T yaitu banyaknya kasus uji.
T baris berikutnya masing-masing berisi X dan Y.

Format Keluaran
Untuk setiap kasus uji, keluarkan Toni atau Tere sebagai walikota terpilih pertama kota CompFest.
Apabila tidak ada walikota terpilih, keluarkan Voting Ulang .

Contoh Masukan
2
62576444 70997833
66787139 66787139

Contoh Keluaran
Toni
Voting Ulang

Batasan

Nilai T tidak akan melebihi 1000

Nilai X dan Y dijamin muat dalam unsigned 64-bit integer

Anda mungkin juga menyukai