NPC 2010 LEMBAR SOAL BABAK FINAL NPC NPC 2010 Be a Geeks, Enjoy your Code!!

dokumen-dokumen yang mirip
SCHEMATICS 2011 SOAL SCHEMATICS

Faktorial. Kode Soal: OSN601 Batas Run-time: 1 detik / test-case Batas Memori: 32 MB Masukan: Standard input Keluaran: Standard output

SOAL BABAK PENYISIHAN TAHAP Informatic Logical Programming Competition 2010

Hari 1 / Soal 1: Bukit dan Lembah

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

Mewarnai Tabel. Masukan. Keluaran. Batasan. Asia-Pacific Informatics Olympiad 2011 Bahasa Indonesia Version

Olimpiade Sains Nasional XI Bidang Komputer/Informatika

OLIMPIADE SAINS NASIONAL IX

BAB IV HASIL DAN UJI COBA

Arkavi vs Raja Setan

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

A. Catur. Time Limit : 1 detik

Nama, Tipe, Ekspresi, dan Nilai

BAB III ANALISIS DAN PERANCANGAN

BAB II LANDASAN TEORI. bilangan bulat dan mengandung berbagai masalah terbuka yang dapat dimengerti

Struktur Program. Rinta Kridalukmana

Hitung Jumlah Titik Bilangan Biner

IV. RANCANG BANGUN SISTEM. Perangkat lunak bantu yang dibuat adalah perangkat lunak yang digunakan untuk

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

Biner. Bilangan desimal yang dinyatakan sebagai bilangan biner akan berbentuk sebagai berikut:

A. Segiempat Terluas

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

OLIMPIADE SAINS TERAPAN NASIONAL 2008

BAB IV PENGUJIAN DAN ANALISIS HASIL PENGUJIAN

Sugeng Rawuh Malih Ing Ngayogyakarta

BAB III ANALISIS. Pada tahap analisis, dilakukan penguraian terhadap topik penelitian untuk

BAB IV HASIL DAN PEMBAHASAN

Algoritma + Pemrograman Pascal

Bina Nusantara Programming Contest for High School Student (BNPC HS) Problem A. Bujur Sangkar Ajaib. Time Limit: 3s

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

KU-1072 PENGENALAN TEKNOLOGI INFORMASI B (PTI B)

Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala

Dasar Komputer dan Pemrograman. Konsep Tipe Data dan Operator Nama dan Nilai Data

Mata Kuliah : Pemrograman Web II. Pokok Bahasan : Type Data & Operator. Okta Jaya Harmaja, M.Kom

Bab 2 Editor vi 9. BAB 2 EDITOR vi TUJUAN PRAKTIKUM

Brigida Arie Minartiningtyas, M.Kom

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A

LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL

BAB II VARIABEL DAN TIPE DATA

BAB III ANALISIS DAN DESAIN SISTEM

Olimpiade Sains Nasional XI Bidang Komputer/Informatika

Pengenalan Visual Basic

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN

Algoritma Pemrograman 2B (Pemrograman C++)

2 TIPE DATA DAN VARIABEL

1.1 LATAR BELAKANG MASALAH

BAB IV HASIL DAN UJI COBA

Tipe Data dan Variabel

USER MANUAL AKTIVASI SINGLE SIGN ON (SSO) Panduan Aktivasi Single Sign On (SSO) Untuk Mahasiswa Baru

BAB III ANALISA DAN PERANCANGAN

Penghasilan JokeMart

SELEKSI OLIMPIADE TINGKAT PROVINSI 2007 TIM OLIMPIADE MATEMATIKA INDONESIA 2008

Problem A. Raja yang Bijak

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

OLIMPIADE SAINS NASIONAL IX

Soal hari Jumat (16/10) Latihan 10 MS

Tugas #2 (kelompok, max. 3 orang)

USER MANUAL SINGLE SIGN ON ACCOUNT REGISTRATION

Algoritma,Flowchart, Konsep

USER MANUAL SINGLE SIGN ON ACCOUNT REGISTRATION MAHASISWA

BAB I PENDAHULUAN. dari isinya, informasi dapat berupa penting atau tidak penting. Bila dilihat dari sifat

MODUL DUA VARIABEL DAN TIPE VARIABEL

Lecturer: Abdusy Syarif. Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana. Tipe Data

BAB III ANALISIS DAN PERANCANGAN SISTEM. Metode penelitian pada pembuatan sistem ini menggunakan SDLC Model

Jikax (2 x) = 57, maka jumlah semua bilangan bulat x yang memenuhi adalah A. -5 B. -1 C. 0 D. 1 E. 5

TINGGI KANDANG SUSUN

Algoritma & Pemrograman 1B BASIC

Fundamental Formula Excel

Heme's Horse. Contoh Input Contoh Output 3 00: : :23

Pengantar Common Gateway Interface (CGI) dan Perl. - Konsep CGI dan Perl - Lingkungan variabel di Perl - Metode POST dan GET

OLIMPIADE SAINS NASIONAL VII

MODUL 2 TIPE DATA, KONSTANTA DAN VARIABEL

Rumus dan Fungsi I Rumus dan Fungsi

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

Instalasi Code::Blocks, Tipe Data, Variabel, Konstanta, Operator, Input-Output dan Flowchart

Problem A Kamus Panda

PERTEMUAN II Tipe Data, Variabel, Konstanta, Operator

Kasus A : Coklat Gratis

Olimpiade Sains Nasional XI Bidang Komputer/Informatika

BAB IV HASIL DAN UJI COBA

A. Jangkauan Terbesar

Pada pertemuan ini kita akan membahas :

A. Overview 20/01/2012. Pada pertemuan ini kita akan membahas : Oleh : Fiftin Noviyanto

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1

Problem A. Turnamen Panco

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

Tugas UTS Pemrograman Berorientasi Obyek

Algoritma dan Pemrograman

OLIMPIADE SAINS NASIONAL VIII

Praktikum 5 Mencetak Output

BAHAN AJAR KKPI KELAS XII

JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

Analisis Penggunaan Algoritma RSA untuk Enkripsi Gambar dalam Aplikasi Social Messaging

Aplikasi Surat Keluar Masuk Versi 1.0

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Transkripsi:

NPC 200 LEMBAR SOAL BABAK FINAL NPC 200 NPC 200 Be a Geeks, Enjoy your Code!! 0

Problem A: String LD Stringld (left delete) adalah fungsi untuk menerima string dan menghapus karakter paling kiri dari string tersebut( misal : Stringld ( acm ) returns cm ). Anda akan diberikan beberapa kata-kata berbeda dan setiap langkah kita akan mengimplementasikan stringld pada setiap kata-kata dalam daftar. Buatlah program yang dapat menghasilkan banyak langkah yang harus di lakukan sampai kata tersebut paling tidak memenuhi dari kondisi berikut untuk menjadikan true.. String tersebut menjadi empty string; 2. Muncul string yg duplikat Missal, diberikan list dari kata-kata aab, abac, dan caac. implementasi dari input tersebut untuk langkah pertama akan menghasilkan string sebagai berikut ab, bac, aac. Untuk langkah kedua akan didapatkan b, ac, ac. Sejak langkah kedua akan di dapatkan 2 buah ac strings, sehingga kondisi 2 menjadi true dan output dari program tersebut adalah. Catatan bahwa program tidak menghitung langkah terakhir yang menghasilkan string duplikat tersebut. Contoh lebih dapat ditemukan di bagian contoh input dan output. Input (Standard Input) Ada beberapa test cases dalam input. Baris pertama dari merupakan banyaknya testcase yakni ( n 00), banyak kata. Setiap dari baris ke n memiliki string paling banyak 00 karakter yang lowercase. Input akan berhenti apabila di masukkan angka 0. Output (Standard Output) Untuk setiap test case, tulislah dalam baris tunggal berapakah nilai maksimum dari stringld yang dapat kita panggil Sample Input aaba aaca baabcd dcba aaa bbbb ccccc 0 Sample Output 2

Problem B: Menggambar Joko hendak menggambar dalam sebuah lukisan dengan ukuran m x n petak. Dia dapat menarik beberapa garis di papan tersebut dengan menggunakan kuas dengan ukuran satu. Dalam setiap langkah, dia harus memilih warna yang baru dan mewarnai dengan kolom penuh atau baris penuh. Dia memiliki gambar besar yang harus digambar di papan, akan tetapi dia tidak tahu warna yang mana yang harus digunakan untuk pertama kali. Anda harus membantu dia untuk mengetahui urutan warna tersebut. Input (Standard Input) Akan ada beberapa test case dalam input. Baris pertama untuk setiap test caseberisi dua buah bilangan bulat m dan n dengan ukuran (0 < m, n < 00). Setelah baris pertama akan ada m baris dengan bilangan bulat n yang menunjukkan warna untuk seiap sel. Semua warna adalah angka integer positif kurang dari 0000. Input diakhiri dengan bari tunggal berisi dua buah nol berturut-turut. Output (Standard Output) Untuk setiap test case, tulislah dalam satu baris berisi urutan warna yang di gunakan untuk mengecat papan tulis. Jika ada beberapa jawaban, output yang pertama adalah yang secara lexicography terkecil (tergantung dari setiap nomor sebagai simbol). Sample Input 5 6 5 6 6 2 2 2 2 5 2 2 2 0 0 Sample Output 6 5 2 2 2

Problem C. Circle Artwork Lingkaran merupakan simbol yang kuno dan universal dari kesatuan, keutuhan, ketak-berhinggaan, dewi, dan kekuatan perempuan. Hal ini sering direferensikan dalam kesenian dan religi. Pada problem kali ini, kita berperan sebagai seniman modern dan menginginkan untuk menggambar lukisan dengan titik dan lingkaran, dan yang jelas menggunakan berbagai warna. Pertama, kita menempatkan beberapa titik warna pada kanvas. Tujuannya adalah untuk menggambar lingkaran untuk setiap warna Ci, sehingga setiap titik berwarna yang berada didalam atau pada batas lingkaran memiliki warna Ci. Selanjutnya, setiap lingkaran tersebut harus memiliki minimal dua titik yang terletak pada batas lingkaran. Perhatikan bahwa untuk beberapa warna, ada kemungkinan mustahil untuk menggambar seperti lingkaran. Pada problem ini, diberikan satu himpunan titik berwarna, tugas Anda adalah untuk menghitng jumlah warna terbesar (terbanyak) dimana disana terdapat lingkaran yang sesuai dengan kondisi di atas. Input (Input Standar) Terdapat banyak test case untuk input. Untuk setiap test case, baris pertma merupakan integer positif n ( <n <00), dimana merupakan banyaknya titik berwarna. Baris selanjutnya diikuti input sebanyak n berupa Ci Xi Yi dimana Ci adalah warna dari titik tersebut dan Xi Yi merupakan koordinat titiknya. Setiap warna dituliskan maksimal 20 karakter huruf kecil berbahasa Inggris. Koordinat merupakan integer antara -,000,000 dan,000,000. Akhir dari test case diakhiri dengan bilangan 0 tunggal. Ouput (Output Standar) Untuk setiap test case, tulis baris tunggal yang merupakan jumlah terbesar warna yang terdapat lingkaran sesuai dengan kondisi di atas. Contoh Input red blue 2 blue 2 yellow 0 Contoh Output

Problem D. Encrypted SMS Tahun ini, panitia keilmiahan Schematics menggunakan email untuk berdiskusi tentang berbagai masalah dan mengedit topik yang mereka pilih. Mereka tahu bahwa email bukanlah jalan yang aman untuk berkomunikasi. Terutama untuk topik yang penting. Mereka mengirim file yang terkompresi dan dilindungi sandi saat mereka berkomunikasi. Dalam mengirim sandi, mereka menggunakan SMS. Untuk meningkatkan tingkat keamanan, sandi terenkripsi dikirimkan melalui SMS. Untuk melakukan hal tersebut, mereka mengirim SMS dengan menggunakan metode multitap. Multi-tap merupakan metode input text yang paling umum untuk ponsel pada saat ini. Dengan pendekatan ini, pengguna menekan tombol satu atau beberapa kali untuk mendapatkan karakter yang diinginkan. Misalnya, tombol 2 ditekan sekali untuk mendapatkan karakter A, dua kali untuk B, dan tiga kali untuk C. Algoritma enkripsi yang digunakan cukup simpel, yakni untuk mengenkripsi karakter ke-i dari password, kunci yang digunakan untuk mendapatkan karakter adalah yang ditekan sebanyak i kali. Sebagaimana jika karakter ke- dari password adalah U, tombol 8 ditekan 6 kali, maka akan di dapatkan karakter V. Perhatikan bahwa untuk membuat problem simpel, kita asumsikan bahwa keypad tidak menghasilkan digit angka. Komite ilmiah membutuhkan program untuk men-dekripsi password yang diterima. Mereka terlalu sibuk untuk menulis program tersebut dan meminta tolong Anda! Buat program untuk mendapatkan teks terenkripsi yang benar dan mencetak password yang asli. Input

Input terdiri dari beberapa test case. Setiap test case berisi string yang tidak kosong dengan panjang maksimal 00. yang terdiri dari karakter huruf kecil ataupun kapital. Input terakhir ditandai dengan tanda pagar ('#') tunggal. Output Untuk setiap test case, tulis hasil dekripsi password secara terpisah. Perhatikan bahwa password merupakan case-sensitive. Sample Input BACE GgaudQNS # Sample Output ABCD IhateSMS 5

Problem E. Locomotive Mirko dan Slavko akhirnya mendapat pekerjaan sebagai pengemudi lokomotif di Jalan Croasia. Saat hari pertama mereka bekerja, mereka mendapat tugas. Masing masing dari mereka mengemudikan lokomotif mereka dari kota tertentu dan mengunjungi kota sebanyak mungkin. Mirko merupakan pengemudi yang berpengalaman, sehingga dia tidak takut apa apa. Akan tetapi, ini merupakan pengalaman pertama Slavko dalam mengemudi lokomotif, sehingga dia belum bisa melakukan apa apa. Untungnya, semua lokomotif memiliki radio, sehingga Slavko mampu mengemudi dengan normal selama dia berada dalam jangkauan radio Marko. Marko memberi instruksi kepada Slavko via radio tersebut. N kota telah diberikan koordinat. Beberapa dari kota tersebut terhubungkan oleh jalur kereta api. Mirko dan Slavko memulai perjalanannya dengan kota kota yang berbeda, sehingga mereka masing masing terpisah sejauh D kilometer. Lokomotif dapat menggunakan semua jalur kereta api, dengan kecepatan berapapun dan dari arah manapun. Mirko dan Slavko bisa jadi terpisah D kilometer sampai kapanpun. Buatlah program yang akan menentukan semua kemungkinan kota kota yang dikunjungi oleh Slavko, sebagaimana yang dijelaskan berikut. Input Baris pertama dari input adalah T jumlah testcase. Baris selanjutnya terdiri dari angka N dan P, serta angka D, 2 N 00, P 000, D 0,000. Angka N merupakan jumlah dari kota, angka P merupakan jumlah dari rail kereta api, angka D merupakan jarak radio dalam satuan kilometer (sebuah bilangan desimal dengan ketelitian dua angka di belakang koma). Kota kota dinomori sampai dengan N. Masing masing dari N garis tersebut berisi data yang menggambarkan sebuah kota, misalnya dua integer, X dan Y, -5000 X, Y 5000, mewakili informasi koordinat kota. Masing masing baris P tersebut menggambarkan sebuah rail kereta api, misalnya dua integer, G and G2, menyatakan bahwa terdapat rail kereta api yang menghubungkan G dan G2. Baris berikutnya berisi posisi mula mula dari Mirko dan Slavko, integers U dan V. Mirko berangkat dari kota U, Slavko dari kota V. U dan V mewakili dua kota yang terpisahkan sejauh D kilometer. Output Output berisi dari jumlah seluruh kota yang dapat dicapai oleh Slavko. Angka angka ini harus diurutkan dari kecil ke besar dan ditulis dengan baris yang terpisah. Sample Input 5.5 0 0 0 6

0 2 2 5 5 2 2 8 6 0 0 8 0 6 0 0-8 - 2-6 - 2 2 5 6 6 7 7 8 5 8 6 2 0 0 0 2 0 0 2-0 2 2 2 5 6 6 7 2 8 5 Sample Output 5 6 7 8 2 NB : Output testcase pertama adalah,. Output testcase kedua 5, 6, 7, 8. Output testcase ketiga, 2,,. 7

Problem F. Kue Pizza Fanul merayakan pesta karena telah menjuarai NPC 200. Dia mengundang teman temannya untuk makan pizza. Sayangnya, teman teman Fanul tidak bisa makan keseluruhan pizza, akan tetapi mereka tahu persis berapa banyak bagian pizza yang dapat mereka makan dan mereka bersikeras untuk mendapatkan bagian pizza tersebut. Fanul memakan satu pizza utuh dan teman temannya ingin sepotong bagian dari pizza Fanul. Teman teman fanul meminta untuk membagi pizza dengan tiga potongan yang berbeda, yakni seperempat, setengah, dan tiga perempat dari pizza tersebut. Buat program yang membantu Fanul untuk menemukan jumlah minimal pizza yang harus dipesan sehingga semuanya mendapat bagian pizza secara persis seperti yang mereka inginkan. Input Baris pertama merupakan integer N, 0<=N<=0,000, yang merupakan jumlah dari teman teman Fanul. Tiap N baris selanjutnya, terdapat bagian dari pizza yang diinginkan oleh teman teman Fanul. Bagian tersebut direpresentasikan dengan bilangan pecahan :/, /2, atau /. Output Pada baris pertama dan hanya terdiri dari satu baris, Anda harus menuliskan jumlah minimal pizza yang harus Fanul pesan. Jangan lupa untuk memesan satu pizza utuh untuk Fanul. Sample Input: /2 / / Output: Input: 5 /2 / /2 / / Output: 8

Problem G. Papan Hexagonal Papan kotak seperti papan catur merupakan sesuatu yang umum pada sebuah permainan, dan untungnya papan ini dapat digambar dengan mudah dengan bantuan penggaris. Tetapi, terdapat permainan lain yang membutuhkan papan hexagonal, yang lebih sulit digambar dengan tangan. Institute for Client Permanent Comfort (ICPC) adalah sebuah pabrik papan game yang memutuskan untuk menyediakan para pelanggannya sebuak program otomatis untuk membangun papan hexagonal untuk beberapa permainan. Ukuran dari papan hexagonal ini dideskripsikan sebagai single integer N yang mengindikasikan berapa banyak sel yang mana di masing-masing sisi pada 6 sisi papan. Sebagai contoh, ukuran papan N = 2 seharusnya terlihat seperti gambar di bawah ketika digambar dengan programnya. / \_ / \_/ \ \_/ \_/ / \_/ \ \_/ \_/ \_/ Input Input terdiri dari beeberapa test case. Tiap test case digambarkan dengan baris tunggal integer N yang mewakili ukuran dari papan ( N 20). Baris terakhir dari input berisi angka tunggal - dan harus tidak ada proses yang dilakukan pada test case. Output Untuk tiap testcase, di-output-kan papan hexagonal sesuai ukuran yang dimasukkan. Dilanjutkan dengan baris tunggal yang berisi tiga asterisk. Anda harus mengikuti contoh input dan output serta contoh gambar di atas. Gunakan spasi regular ( ), underscore ( _ ), slash ( / ) dan backslash( \ ). Tidak boleh ada spasi tambahan pada akhir baris yang dicetak. 9

Sample Input - Sample Output _ / \ \_/ *** / \ / \_/ \_ / \_/ \_/ \ \_/ \_/ \_/ / \_/ \_/ \ \_/ \_/ \_/ / \_/ \_/ \ \_/ \_/ \_/ \_/ \_/ \_/ *** 0