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