Asia-Pacific Informatics Olympiad (APIO) 2012

dokumen-dokumen yang mirip
Olimpiade Komputer Asia-Pasifik

OLIMPIADE SAINS NASIONAL VIII

Asia-Pacific Informatics Olympiad 10 Mei 2008

Olimpiade Sains Nasional XI Bidang Komputer/Informatika

OLIMPIADE SAINS TERAPAN NASIONAL 2008

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

3. Analisis Masalah dan Penyelesaian

Olimpiade Sains Nasional XI Bidang Komputer/Informatika

Contoh Masukan: Contoh Keluaran: Perhatikan dalam setiap baris satu bilangan dengan bilangan lain hanya dipisahkan 1 (satu) spasi.

OLIMPIADE SAINS NASIONAL VII

Olimpiade Sains Nasional XI Bidang Komputer/Informatika

Pertahanan Pekanbaru. Deskripsi. Format Masukan. Time limit: 1 s. Memory limit: 64 MB

Problem A Divisible compfest1.c / compfest1.cpp / compfest1.pas Runtime-limit: 0.5 detik Memory-limit: 64 MB

Problem A. 3 Prima. Kasus #1: 2 Kasus #2: 1 Kasus #3: 135 Kasus #4: 20

TINGGI KANDANG SUSUN

Figure 1: Sebuah Penukar Manik Terhebat dengan 5 ban berjalan dan 5 penukar.

INFORMATIKA/KOMPUTER. Hari Pasar 16 Ilir 2. Menjinakkan Bom 3. Pos Wisata Sungai

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

Bundel Soal Sesi 2 Bidang Informatika Olimpiade Sains Nasional X

OLIMPIADE SAINS NASIONAL IX

Sang Pelompat. Batas Waktu 1 detik. Batas Memori 64 MB

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

Hari 1 / Soal 1: Bukit dan Lembah

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

OLIMPIADE SAINS NASIONAL IX

A. Segiempat Terluas

OLIMPIADE SAINS NASIONAL VIII

Problem A. Turnamen Panco

Hari 2 1. Robot Pempek 2. Belanja Suvenir 3. Wisata Palembang

INSTITUT TEKNOLOGI BANDUNG SENIOR PROGRAMMING CONTEST 3 REGULASI DAN PERATURAN

INSTITUT TEKNOLOGI BANDUNG JUNIOR PROGRAMMING CONTEST 3

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

A. Bimbel. Time limit: 1 detik

BAB 4 IMPLEMENTASI DAN EVALUASI. Untuk implementasi pada Oke Bakery ada spesifikasi-spesifikasi yang dibutuhkan

A. Mati Lampu. Format Masukan. Format Keluaran. Contoh Masukan. Contoh Keluaran

Microsoft Internet Explorer 7 atau versi diatas (direkomendasikan) Mozilla FireFox 3.6 atau versi diatas (direkomendasikan)

Prosedur menjalankan Aplikasi Sahabat KRL

Eksplorasi Gradien Menggunakan Geogebra. Muh. Tamimuddin H

A. Bayar atau Kabur. Format Masukan. Format Keluaran. Contoh Masukan

BAB VI KESIMPULAN DAN SARAN

Programmer dan Meeting

Berkas Soal Penyisihan Competitive Programming Tingkat Mahasiswa. CompFest 2013

BAB 2 LANDASAN TEORI

ANALISA PERANCANGAN OUTPUT & INPUT

Jenis-Jenis Keyboard : 1.) QWERTY 2.) DVORAK 3.) KLOCKENBERG

Gambar 1.1. User Interface ATM

Bundel Soal Sesi 3 Bidang Informatika Olimpiade Sains Nasional X

Penentuan Posisi. Hak Cipta 2007 Nokia. Semua hak dilindungi undang-undang.

Pendahuluan. Kuadran I (X>0, Y>0) Kuadran II (X<0, Y>0) Kuadran IV (X>0, Y<0) Kuadran III (X<0, Y<0)

BAB 4 IMPLEMENTASI DAN EVALUASI

sebelah kiri terdapat kotak yang berisi gambar-gambar dan animasi yang

Agresi Militer II. Batas Runtime Batas Memori. 1 detik / testcase 32 MB

Berkas Soal Final Competitive Programming Tingkat SMA. CompFest Kontributor: Irwan Mulyawan Ricky Suryadharma Verdiyanto Saputra William Gozali

BAB III ANALISIS, ALGORITMA, DAN CONTOH PENERAPAN

SOAL FINAL PROGRAMMING COMPETITION SESSION JOINTS 2013 UNIVERSITAS GADJAH MADA 19 MEI 2013

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

: Entitas/Entity. : Aliran data. : Proses. : Penyimpanan data (data store)

Kompetisi Pemrograman IV Babak Final

Selamat Datang di Pengujian Berbasis Komputer (CBT) Ujian Tutorial: Bahasa Indonesia

Cat Rumah. Batas Memori 256 MB

Emoticon Waca. Time limit: 2 s. Memory limit: 64 MB

Berkas Soal Final Competitive Programming Tingkat Mahasiswa. CompFest 2013

Gambar 1. Tampilan Layar Sebuah Program Animasi

BAB 4 IMPLEMENTASI DAN EVALUASI. yang digunakan dalam pengembangan dan perangkat-perangkat yang

Dasar-dasar C/C++ Ekohariadi FT Unesa

Algoritma Kriptografi Modern (Bagian 2)

G a a = e = a a. b. Berdasarkan Contoh 1.2 bagian b diperoleh himpunan semua bilangan bulat Z. merupakan grup terhadap penjumlahan bilangan.

PERTIDAKSAMAAN RASIONAL. Tujuan Pembelajaran

BAB V IMPLEMENTASI DAN EVALUASI. ketiga dalam metode waterfall, implementasi sistem. Implementasi sistem

ALJABAR LINIER DAN MATRIKS

RULE BOOK ACM-ICPC 2017 ACM ICPC Maranatha Provincial Programming Contest

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

Himpunan Mahasiswa Komputer, Ilmu Komputer Universitas Gadjah Mada 1

Soal 1 ITBPC Maling Motor. Kode soal : Batas Run-time : Batas Memori :

10/10/2017. Teknologi Display SISTEM KOORDINAT DAN BENTUK DASAR GEOMETRI (OUTPUT PRIMITIF) CRT CRT. Raster Scan Display

BAGIAN A. PILIHAN GANDA Silanglah Jawaban yang Benar Pada Lembar Jawaban. Jawaban benar bernilai 3, salah atau kosong bernilai 0.

Sandi Blok. Risanuri Hidayat Jurusan Teknik Elektro dan Teknologi Informasi FT UGM

Panduan Mulai Cepat. Menampilkan atau beralih antara akun online Klik ID akun Anda untuk mengubah pengaturan atau beralih akun.

Algoritma dan Pemrograman. Oleh: Eddy Prasetyo N

Penerapan Steganografi Metode Least Significant Bit (LSB) dengan Invers Matriks Pada Citra Digital

Matriks - 1: Beberapa Definisi Dasar Latihan Aljabar Matriks

Array 1 A. TUJUAN PEMBELAJARAN

Pengenalan Geogebra. Oleh: Hazrul Iswadi. Disampaikan pada seminar internal Departemen MIPA. Tanggal 10 September 2011

KKPI PPPPTK VEDC MALANG. Mengetik 10 Jari TIKKJ071A4. Langkah Kerja : Mengopresikan Program Typing Master

Lampiran 1. Langkah perhitungan Uji Validitas di SPSS.

CARA MENJALANKAN PROGRAM. Untuk dapat menjalankan program ini maka user. (pengguna) harus login terlebih dahulu kedalam sistem.

Ini adalah halaman utama e-filing, setelah Anda melakukan login. Klik e-filing di sebelah kanan atas layar.

MATEMATIKA PERSANDIAN. Hendra Gunawan,, Ph.D. CBSED - ITB

Problem A. Liga Adu Ayam

MODUL 10 PEMILIHAN KONDISI IF. Nama : Yuandri Septiawan ( ) Kelas : 1 TK (Teknik Komputer)

serta semua kebutuhan pengguna ( user) ada di program tersebut dan mudah dalam

Final Programming Competition (SMA)

BAB IV IMPLEMENTASI DAN EVALUASI. Dalam merancang dan membangun aplikasi sabak digital pada smartphone

Tahap pertama yang paling penting dalam mengoperasikan SPSS adalah

Transkripsi:

Asia-Pacific Informatics Olympiad (APIO) 2012 Sabtu, 12 Mei 2012 Diselenggarakan oleh The Japanese Committee for International Olympiad in Informatics (JCIOI) Nama soal Dispatching Guard Batas Waktu 1.0 detik 1.0 detik 3.0 detik Batas Memori 256 MB 256 MB 256 MB Nilai 100 100 100 Masukan stdin (keyboard) Keluaran stdout (layar) Bahasa Versi kompilator Opsi kompilator C gcc versi 4.6.3 -m64 -O2 -lm C++ g++ versi 4.6.3 -m64 -O2 -lm Pascal fpc versi 2.4.4 -O2 -Sd -Sh

Dispatching Dispatching Pada suatu kelompok ninja, beberapa ninja akan dikirim bertugas untuk klien dan mereka akan dibayar sesuai dengan pekerjaan mereka. Pada kelompok tersebut, terdapat satu ninja yang disebut Master. Setiap ninja kecuali Master memiliki tepat satu atasan. Untuk menjaga kerahasiaan dan mendukung semangat kepemimpinan, setiap instruksi yang berhubungan dengan pekerjaan akan selalu dikirim dari atasan kepada bawahannya. Tidak ada cara penyampaian instruksi lainnya yang boleh terjadi. Anda akan mengumpulkan beberapa ninja dan mengirim mereka kepada klien. Anda harus memberikan gaji kepada ninja-ninja yang dikirim. Masing-masing ninja memiliki gaji yang tetap. Jumlah gaji yang Anda keluarkan tidak boleh melebihi anggaran. Selain itu, untuk dapat memberikan instruksi, Anda harus memilih satu ninja sebagai pimpinan yang dapat memberikan instruksi kepada ninja-ninja yang dikirim. Saat instruksi disampaikan, ninja yang tidak dikirim pun dapat menjadi perantara pesan. Pimpinan yang dipilih bisa dikirim dan bisa juga tidak. Jika ia tidak dikirim, ia tidak perlu dibayar. Anda ingin memaksimalkan tingkat kepuasan klien tanpa melebihi anggaran. Tingkat kepuasan klien dihitung dari hasil kali antara banyak ninja yang dikirim dan tingkat kepemimpinan sang pemimpin. Masing-masing ninja memiliki tingkat kepemimpinan yang tetap. Tugas Tuliskan sebuah program yang dengan informasi atasan B i, besarnya gaji C i, dan tingkat kepemimpinan L i dari setiap ninja i (1 i N), dan anggaran gaji M, dapat menentukan nilai maksimal dari tingkat kepuasan klien dengan memilih pimpinan dan ninja-ninja yang dikirim sesuai dengan kondisi yang diberikan. Batasan 1 N 100 000 Banyaknya ninja 1 M 1 000 000 000 Anggaran gaji 0 B i < i Atasan dari masing-masing ninja 1 C i M Besarnya gaji dari masing-masing ninja 1 L i 1 000 000 000 Tingkat kepemimpinan dari masing-masing ninja Masukan Baca masukan berikut ini dari standard input. Baris pertama dari masukan berisi dua buah bilangan bulat dipisahkan spasi N, M, dimana N menyatakan banyaknya ninja dan M menyatakan anggaran gaji. N baris berikutnya menyatakan atasan, gaji, dan tingkat kepemimpinan dari setiap ninja. Baris ke-(i + 1) berisi tiga buah bilangan bulat dipisahkan spasi B i, C i, L i, menyatakan bahwa atasan ninja i adalah ninja B i, gajinya adalah C i, dan tingkat kepemimpinannya adalah L i. Ninja i adalah Master jika B i = 0. Karena pertidaksamaan B i < i selalu terpenuhi, untuk setiap ninja, nomor dari atasannya selalu lebih kecil daripada nomornya sendiri. Dispatching 1 / 2

Dispatching Keluaran Keluarkan nilai maksimal dari tingkat kepuasan klien ke standard output. Penilaian Pada kasus-kasus yang secara kumulatif bernilai 30% dari keseluruhan nilai, berlaku N 3 000. Contoh Masukan dan Keluaran Contoh Masukan 1 Contoh Keluaran 1 5 4 6 0 3 3 1 3 5 2 2 2 1 2 4 2 3 1 Jika Anda memilih ninja 1 sebagai pimpinan dan ninja 3 dan 4 sebagai yang dikirim, jumlah gaji adalah 4 yang tidak melebihi anggaran yang juga 4. Karena terdapat 2 ninja yang dikirim dan tingkat kepemimpinan dari sang pimpinan adalah 3, nilai tingkat kepuasan klien adalah 6. Dan itu adalah nilai maksimal. Dispatching 2 / 2

Guard Guard Kerajaan APIO sedang diserang oleh ninja-ninja. Ninja-ninja tersebut sangat hebat dalam menyerang karena mereka bersembunyi dalam bayangan sehingga orang lain tidak dapat melihat mereka. Hampir seluruh kerajaan APIO sudah dikuasai kecuali kastil APIO, dimana raja berada. Di depan kastil APIO, terdapat sederetan N semak-semak. Semak-semak tersebut dinomori dari 1 sampai dengan N, dan K ninja sedang bersembunyi tepat di K semak-semak. Terdapat M penjaga kastil APIO. Penjaga i mengawasi semak-semak bernomor A i sampai dengan B i. Kini, setiap penjaga melapor kepada raja apakah ada ninja pada semak-semak yang mereka awasi. Karena Anda juga adalah pengikut raja, Anda harus memberitahunya, berdasarkan laporan para penjaga, di semak-semak mana satu ninja pasti bersembunyi. Dalam konteks ini, satu ninja pasti bersembunyi pada suatu semak-semak jika satu ninja pasti bersembunyi pada semak-semak tersebut dalam kemungkinan apapun selama tidak bertentangan dengan laporan para penjaga. Tugas Tuliskan sebuah program, yang dengan informasi para penjaga dan laporan mereka, dapat menentukan semaksemak dimana satu ninja pasti bersembunyi. Batasan 1 N 100 000 Banyaknya semak-semak 1 K N Banyaknya ninja yang bersembunyi 1 M 100 000 Banyaknya penjaga Masukan Baca masukan berikut ini dari standard input. Baris pertama dari masukan berisi tiga buah bilangan bulat dipisahkan spasi N, K, M, dimana N menyatakan banyaknya semak-semak, K menyatakan banyaknya ninja, dan M menyatakan banyaknya penjaga. M baris berikutnya berisi informasi penjaga dan laporannya. Baris ke-i berisi tiga buah bilangan bulat dipisahkan spasi A i, B i, C i (A i B i ), yang berarti bahwa penjaga i mengawasi semak-semak bernomor A i sampai dengan B i. Bilangan bulat C i bernilai antara 0 atau 1. Jika C i = 0, tidak ada ninja dari semak-semak bernomor A i sampai dengan B i. Jika C i = 1, terdapat setidaknya satu ninja dari semak-semak bernomor A i sampai dengan B i. Untuk setiap masukan, dijamin terdapat setidaknya satu kemungkinan posisi ninja yang tidak bertentangan dengan laporan para penjaga. Keluaran Jika ada semak-semak dimana satu ninja pasti bersembunyi, keluarkan nomor dari semak-semak tersebut ke standard output. Keluarkan nomor semak-semak berurutan dari kecil ke besar dan setiap baris keluaran hanya Guard 1 / 2

Guard boleh berisi sebuah nomor. Maka, jika terdapat X semak-semak dimana satu ninja pasti bersembunyi, keluaran akan berisi X baris. Jika tidak ada semak-semak dimana satu ninja pasti bersembunyi, keluarkan -1 ke standard output. Penilaian Pada kasus-kasus yang secara kumulatif bernilai 10% dari keseluruhan nilai, berlaku N 20, M 100. Pada kasus-kasus yang secara kumulatif bernilai 50% dari keseluruhan nilai, berlaku N 1 000, M 1 000. Contoh Masukan dan Keluaran Contoh Masukan 1 Contoh Keluaran 1 5 3 4 3 1 2 1 5 3 4 1 4 4 0 4 5 1 Pada contoh ini, terdapat dua kemungkinan lokasi ninja yang sesuai dengan kondisi: tiga ninja bersembunyi di semak-semak 1, 3, 5 atau tiga ninja bersembunyi di semak-semak 2, 3, 5. Karena selalu ada ninja yang bersembunyi pada semak-semak 3 dan 5 untuk semua kemungkinan, kita keluarkan 3 dan 5. Sedangkan semak-semak 1, terdapat kemungkinan bahwa satu ninja bersembunyi di situ. Tapi ada kemungkinan juga tidak ada ninja bersembunyi di situ. Maka, kita tidak boleh mengeluarkan 1. Dengan alasan yang sama, kita tidak boleh mengeluarkan 2. Contoh Masukan 2 Contoh Keluaran 2 5 1 1-1 1 5 1 Pada contoh ini, tidak ada semak-semak dimana satu ninja pasti bersembunyi. Maka, kita keluarkan -1. Guard 2 / 2

adalah senjata tajam mirip pisau yang digunakan oleh ninja. Para ninja menyerang musuhnya dengan melemparkan kunai. Terdapat N ninja pada suatu matriks berukuran W kolom dan H baris. Setiap ninja berada tepat di tengahtengah kotak, tidak ada dua ninja yang berada di kotak yang sama. Setiap ninja memiliki satu kunai dan berdiri menghadap ke salah satu dari empat arah; atas, bawah, kiri, atau kanan. Pada waktu 0, masing-masing ninja melemparkan kunainya sesuai dengan arah mereka menghadap. Setiap kunai meluncur lurus dengan kecepatan 1. Jika lebih dari satu kunai tiba di suatu titik pada waktu yang bersamaan, mereka akan saling bertabrakan dan menghilang. Ukuran kunai sangat kecil sehingga dapat diabaikan. Selain itu, karena para ninja bergerak dengan cepat, mereka tidak akan pernah terserang kunai. Setiap kunai terus bergerak maju pada arahnya dengan kecepatan yang tetap kecuali jika ia bertabrakan dengan kunai lainnya. Pada gambar-gambar berikut ini, panah-panah menyatakan kunai-kunai. Arah dari panah menunjukkan arah dari kunai. Pada gambar-gambar berikut ini, semua panah tebal akan bertabrakan. Di sisi lain, pada gambar-gambar di bawah ini, panah tebal tidak akan bertabrakan dengan panah tebal lainnya. Pada gambar kedua dan ketiga, sebuah panah tipis akan bertabrakan dengan sebuah panah tebal. Karena panahpanah yang saling bertabrakan akan menghilang, kedua panah tebal tidak akan saling bertabrakan pada setiap gambar tersebut. Tugas Hitunglah banyaknya kotak-kotak pada matriks berukuran W H yang sudah dilalui kunai-kunai setelah waktu yang cukup lama berlalu. 1 / 4

Batasan 1 N 100 000 Banyaknya ninja 1 W 1 000 000 000, 1 H 1 000 000 000 Besarnya matriks 1 X i W, 1 Y i H Koordinat para ninja Masukan Baca masukan berikut ini dari standard input. Baris pertama masukan berisi dua buah bilangan bulat dipisahkan spasi W, H, yang menyatakan ukuran matriks. Baris kedua dari masukan berisi bilangan-bilangan bulat N, banyaknya ninja-ninja. Baris ke-i (1 i N) dari N baris berikutnya berisi tiga buah bilangan bulat dipisahkan spasi X i, Y i, D i, yang berarti bahwa posisi ninja i ada di kolom ke-x i dari kiri dan baris ke-y i dari atas. Tidak ada dua ninja yang berada di posisi yang sama. Arah dari ninja i dinyatakan oleh nilai D i. Keluaran Jika D i = 0, ninja i mengarah ke kanan. Jika D i = 1, ninja i mengarah ke atas. Jika D i = 2, ninja i mengarah ke kiri. Jika D i = 3, ninja i mengarah ke bawah. Keluarkan ke standard output banyaknya kotak pada matriks berukuran W H yang sudah dilalui kunai-kunai setelah waktu yang cukup lama berlalu. Penilaian Pada kasus yang secara kumulatif bernilai 10% dari keseluruhan nilai, berlaku N 1 000, W 1 000, H 1 000. Pada kasus yang secara kumulatif bernilai 40% dari keseluruhan nilai, berlaku N 1 000. Contoh Masukan dan Keluaran Contoh Masukan 1 Contoh Keluaran 1 5 4 11 5 3 3 2 3 2 0 4 2 2 5 4 1 1 1 3 2 / 4

Pada contoh di atas, matriks pada waktu 0 dapat digambarkan sebagai berikut. yang dilemparkan ninja i dinyatakan dengan kunai i. Pada waktu 0.5, kunai 2 dan kunai 3 akan saling bertabrakan dan menghilang. Gambar berikut ini menggambarkan matriks pada waktu 1. Di sini, kotak-kotak berwarna abu-abu menyatakan kotak-kotak yang sudah dilalui kunai. Pada waktu 2, kunai 1 dan kunai 5 akan saling bertabrakan dan menghilang. Matriks pada waktu 2 dapat digambarkan sebagai berikut. Tidak ada lagi kunai akan bertabrakan setelah waktu 2. Matriks, setelah waktu yang cukup lama berlalu, dapat digambarkan sebagai berikut. 3 / 4

Akhirnya, banyaknya kotak pada matriks yang dilalui kunai adalah 11. Maka, kita harus mengeluarkan 11. Contoh Masukan 2 Contoh Keluaran 2 7 6 29 12 3 2 3 6 3 2 7 1 3 1 5 0 3 6 1 6 6 1 4 5 2 1 3 0 6 5 2 5 1 2 6 4 3 4 1 3 4 / 4