Pengenalan Pemrograman Kompetitif
Penulis: SayedD
"Saya ingin memenangkan olimpiade informatika!"
- Siswa Ambisius
Bagi Anda yang baru, selamat datang ke dalam dunia pemrograman kompetitif! Banyak hal yang akan menanti Anda.
Menurut definisi, Pemrograman Kompetitif merupakan olahraga pikiran yang mana pada umumnya kompetisi diadakan menggunakan internet maupun jaringan lokal. Peserta dituntut untuk menulis suatu program yang dapat menyelesaikan setiap permasalahan yang diberikan, umumnya permasalahan matematika dan logika, yang telah diberikan, dalam waktu yang terbatas.
Membangun algoritma yang efisien dan mengimplementasikannya menggunakan bahasa pemrograman (umumnya menggunakan Bahasa Pemrograman C++) adalah proses penyelesaian masalah utama. Ini merupakan kompetensi yang paling penting dan paling sering diuji pada kompetisi pemrograman.
Jadi, pemrograman kompetitif tidak menuntut Anda untuk membuat website atau membuat game.
Struktur Soal
Berikut adalah ilustrasi soal pada pemrograman kompetitif:
Kartu
Memory limit
64 MB
DeskripsiSelama isolasi mandiri, Pak Dengklek menghabiskan waktunya untuk bermain kartu. Setiap kartu berisi sebuah bilangan asli. Pak Dengklek mempunyai aturan berikut dalam memainkan kartunya:
Awalnya Pak Dengklek mengambil sebuah kartu dengan nomor yang disebut kartu pertama,
Setiap giliran, Pak Dengklek menjumlahkan semua nomor kartu yang berada di tangannya lalu mengambil sebuah kartu dengan nomor sesuai dengan jumlahnya tadi,
Apabila terdapat tiga kartu di tangan Pak Dengklek, maka Pak Dengklek akan membuang salah satu kartunya.
Apabila diketahui nomor-nomor kartu yang sedang dipegang Pak Dengklek, dapatkah Anda mengetahui nomor kartu pertamanya?
Format MasukanBaris pertama berisi dua buah bilangan A dan B yang menyatakan nomor-nomor kartu yang sedang dipegang Pak Dengklek.
Format KeluaranSebuah baris berisi nomor kartu pertama yang diambil Pak Dengklek.
Contoh Masukan 1
Contoh Keluaran 1
Penjelasan ContohPada contoh pertama, Pak Dengklek mengambil kartu pertama dengan nomor 3. Selanjutnya Pak Dengklek mengambil nomor 3 lagi lalu mengambil nomor 3 + 3 = 6. Karena sudah terdapat tiga kartu maka Pak Dengklek dapat membuang salah satu kartunya yang bernomor 3 sehingga tersisa kartu dengan nomor 6 dan 3.
SubsoalSubsoal 1 (50 poin)
Subsoal 2 (50 poin)
Mari kita pecah strukturnya satu persatu. Pada bagian atas terdapat judul soal diikuti dengan batas waktu dan memori, dilanjutkan dengan deskripsi soal di mana soal dibunyikan, dilanjutkan dengan format masukan dan keluaran disertai dengan contoh masukan dan keluaran. Terkadang soal memberikan penjelasan terhadap contoh soal. Dan terakhir pada soal dengan format International Olympiad of Informatics terdapat subsoal. Solusi pada soal pemrograman kompetitif tidak hanya satu. Dapatkah Anda menyelesaikan persoalan ini?
Penilaian
Penilaian pada pemrograman kompetitif dikoreksi secara manual oleh suatu sistem yang dikenal sebagai judge. Judge akan memberikan serangkaian kasus uji pada program Anda, dan apabila program berhasil lolos pada setiap kasus uji maka program akan mendapatkan verdict Accepted.
Program dapat juga gagal pada kasus uji dengan berbagai alasan. Apabila program melewati batas waktu maka judge akan memberikan verdict Time Limit Exceeded. Apabila program melawati batas memori maka judge akan meberikan verdict Memory Limit Exceeded. Apabila program salah mengeluarkan keluaran pada suatu kasus uji maka judge akan memberikan verdict Wrong Answer. Apabila terdapat penulisan yang salah atau tidak valid pada program maka judge akan memberikan verdict Compilation Error. Dan apabila terdapat error seperti Anda ingin mengakses data yang diluar jangkauan atau Anda membagi dengan nol, maka judge akan memberikan verdict Runtime Error.
Pada kompetisi yang bertipe seperti International Olympiad in Informatics, terdapat poin parsial yang diberikan apabila Anda benar pada beberapa kasus uji tertentu dan salah pada kasus uji yan lain. Sedangkan kompetisi yang bertipe seperti International Collegiate Programming Competition, Program Anda harus berhasil lolos pada seluruh kasus uji untuk mendapatkan poin penuh, dalam kata lain tidak terdapat poin parsial.
Last updated