My first Magazine pemrograman-kompetitif-dasar | Page 17

1.4 Mengenal Kompetisi Pemrograman 1.4 Mengenal Kompetisi Pemrograman Ada banyak kompetisi pemrograman dengan tingkatan yang beragam. Pada subbab ini, kita akan fokus pada 2 format kompetisi yang cukup besar, yaitu format IOI dan format ACM-ICPC. 1.4.1 Olimpiade Sains Nasional dan International Olympiad in In- formatics Olimpiade Sains Nasional (OSN) merupakan kompetisi tahunan yang diselenggarakan oleh Kementerian Pendidikan dan Kebudayaan Indonesia. OSN merupakan kompetisi nasional untuk siswa SMA dan setingkat. Terdapat beberapa bidang pada OSN, termasuk salah satunya bidang informatika. Untuk dapat berpartisipasi pada OSN, Anda harus terlebih dahulu mengikuti dan lolos pada Olimpiade Sains Kabupaten dan Olimpiade Sains Provinsi pada bidang yang bersangkutan. International Olympiad of Informatics (IOI) merupakan kompetisi pemrograman internasio- nal untuk SMA dan sederajat, yang mana masing-masing negara mengirimkan paling banyak 4 perwakilan. Khusus Indonesia, 4 perwakilan akan dipilih setelah melalui 3 tahap seleksi pada Pelatihan Nasional (Pelatnas). Mulanya, 30 siswa-siswi terbaik OSN akan diikutkan Pelatnas 1. Kemudian disaring 16 besar untuk diikutkan ke Pelatnas 2. Kemudian akan disaring lagi menjadi 8 besar untuk mengikuti Pelatnas 3. Terakhir, akan disaring menjadi 4 besar sebagai perwakilan dalam ajang IOI. Format OSN dan IOI OSN Informatika maupun IOI diselenggarakan dalam 3 hari. Hari pertama merupakan hari uji coba, yang mana Anda akan diberikan soal-soal pemrograman kompetitif yang relatif mudah. Poin yang didapatkan pada hari pertama ini tidak dihitung sama sekali untuk penentuan hasil akhir. Kompetisi sesungguhnya ada pada hari kedua dan ketiga. Pada masing-masing hari, Anda akan diberikan 3-4 soal pemrograman yang harus diselesaikan selama 5 jam. Peringkat akhir akan dilihat dari total poin yang didapatkan setiap peserta. Waktu, durasi, dan urutan pengerjaan soal tidak mempengaruhi penilaian akhir. 2 Bentuk Soal Soal OSN dan IOI akan dibagi menjadi beberapa subsoal. Setiap subsoal memiliki batasan- batasan masukan khusus dan poin masing-masing. Untuk mendapatkan nilai sempurna pada suatu soal, program Anda harus bisa menyelesaikan masalah untuk setiap subsoal. Sebagai contoh, perhatikan soal berikut. Contoh Soal 1.2: Lampu dan Tombol versi 2 Terdapat N tombol yang dinomori dari 1 hingga N dan sebuah lampu dalam keadaan mati. Apabila tombol ke-i ditekan, keadaan lampu akan berubah (dari mati menjadi menyala, atau sebaliknya) apabila N habis dibagi oleh i. Apabila masing-masing tombol ditekan tepat sekali, bagaimana keadaan lampu pada akhirnya? Batasan 7