Peraturan

Tata Tertib

  • Peserta diwajibkan memakai pakaian yang rapi dan sopan
  • Tidak diperbolehkan memakai celana pendek atau rok pendek
  • Tidak diperbolehkan memakai sandal
  • Peserta diwajibkan membawa tanda pengenal (kartu pelajar/KTP)

Soal dan Jawaban Peserta

  1. Peserta akan diberikan soal-soal pemrograman (competitive programming) dalam Bahasa Inggris dan Bahasa Indonesia.
  2. Setiap soal yang diberikan terdiri dari:
    • Kepala Soal – judul soal, batasan waktu, dan batasan memori.
    • Deskripsi Permasalahan – latar belakang dan paparan permasalahan.
    • Spesifikasi Input – spesifikasi format dan batasan input.
    • Spesifikasi Output – spesifikasi format output.
    • Contoh Input/Output – contoh input beserta output yang harus dihasilkan.
  3. Program peserta harus membaca input dari standard input (stdin, default: keyboard) dan menulis output ke standard output (stdout, default: layar monitor).
  4. Peserta bisa mengumpulkan (submit) solusi selama kontes berlangsung melalui sistem kontes yang disediakan, yaitu DOMJudge. Jawaban yang disubmit adalah source code dari program yang dibuat (.c/.cpp/.py/.java). Bahasa pemrograman yang disediakan adalah:
    • C,
    • C++17,
    • Python 2,
    • Python 3, dan
    • Java
    Sistem sudah diinstalasi dengan compiler sebagai berikut:
    • C/C++17: GCC/G++ 9.3.0,
    • Java: Java 11.0.9, dan
    • Python: Python 2.7.18 and Python 3.8.5.
  5. Semua solusi yang digunakan oleh tim juri adalah dalam C++17, dan mampu menyelesaikan semua soal yang ada. Perlu diperhatikan bahwa solusi dalam Python bisa saja lebih lambat dibandingkan dengan bahasa yang lain, sehingga dimungkinkan solusi dalam Python tidak memenuhi batas waktu yang diberikan meskipun menggunakan algoritma yang sama.
  6. Program yang dikumpulkan peserta akan diuji kebenarannya dengan kasus uji (testcase) rahasia yang sudah dipersiapkan oleh juri sebelumnya. Kasus uji yang digunakan oleh juri dijamin sesuai dengan batasan input yang tertera pada soal.
  7. Setiap program yang disubmit akan mendapatkan salah satu dari respon berikut:
    • ACCEPTED – program Anda berjalan dalam batasan waktu dan memori tanpa adanya error, serta berhasil menyelesaikan semua kasus uji dengan benar sesuai dengan soal.
    • WRONG ANSWER – program Anda berjalan sesuai dengan batasan waktu dan memori yang ditentukan, namun menghasilkan jawaban yang salah pada salah satu kasus uji.
    • RUNTIME ERROR – program Anda mengalami crash (runtime-error) ketika dijalankan dengan kasus uji.
    • TIMELIMIT – program Anda berjalan melebihi batas waktu yang ditentukan (program dihentikan secara paksa).
    • MEMORY-LIMIT – program Anda berjalan melibihi batas memori yang ditentukan (program dihentikan secara paksa).
    • NO-OUTPUT – program Anda tidak menghasilkan keluaran.
    • COMPILE-ERROR – program Anda tidak bisa dikompilasi.
  8. Peserta dapat menanyakan klarifikasi tertulis mengenai hal-hal (terkait soal, sistem kompetisi, dan sebagainya) yang dianggap kurang jelas melalui sistem yang disediakan. Setiap klarifikasi hanya berisi sebuah pertanyaan dalam format yes-no question. Tim juri akan menjawab klarifikasi dengan salah satu dari jawaban berikut:
    • Ya;
    • Tidak;
    • Baca soal lebih teliti;
    • Pertanyaan tidak jelas;
    • Tidak ada komentar;
    • Jawaban lain bila diperlukan;
  9. Program yang disubmit tidak boleh:
    • mengakses jaringan,
    • melakukan forking,
    • membuat atau membuka file,
    • mengganti hak akses file,
    • membaca informasi file,
    • memanggil system call,
    • mengeksekusi program lain, dan
    • menyerang sistem keamanan grader.
  10. Peserta yang melanggar peraturan yang tertera pada poin 9 akan didiskualifikasi dari lomba. Keputusan dari juri bersifat mutlak dan tidak dapat diganggu gugat.

Sistem Penilaian

Sistem penilaian yang digunakan oleh BNPCHS 2023 mengikuti standard dari ICPC-style, yaitu:
  1. Peringkat peserta ditentukan berdasarkan:
    1. Jumlah soal yang berhasil diselesaikan (ACCEPTED) terbanyak.
    2. jika (i) sama, maka: penalti waktu terkecil.
    3. jika (i) dan (ii) sama, maka: waktu submission terakhir untuk program yang ACCEPTED tercepat.
  2. Penalti waktu adalah waktu submission untuk program yang ACCEPTED (dalam menit, dari kontes dimulai) ditambah dengan penalti 20 menit untuk setiap jawaban yang tidak mendapatkan ACCEPTED untuk soal tersebut, terkecuali untuk respon COMPILER-ERROR tidak mendapatkan penalti.
  3. Setiap peserta hanya bisa mendapatkan 1 jawaban yang ACCEPTED untuk setiap soal; jawaban yang dikumpulkan untuk soal tersebut setelah soal tersebut mendapatkan ACCEPTED tidak akan diperhitungkan (benar maupun salah).
  4. Peserta bebas memilih untuk mengerjakan soal manapun, dengan urutan apapun.

Babak Penyisihan

  1. Babak penyisihan akan berlangsung secara online melalui alamat web yang akan diumumkan kemudian. Pastikan Anda sudah mendapatkan akun untuk login ke sistem yang digunakan sebelum sesi pemanasan dari babak penyisihan. Jika Anda belum mendapatkan akun, hubungi contact person.
  2. Peserta akan diberikan 5 hingga 6 soal pemrograman dengan durasi perlombaan selama 180 menit.
  3. Tersedia scoreboard yang bersifat publik dan dapat diakses oleh peserta.
  4. Peserta diperbolehkan untuk mencari referensi, baik dari buku fisik, buku elektronik, maupun internet. Dimohon untuk tidak mengumpulkan program secara mentah dari referensi yang Anda rujuk, karena merupakan bentuk plagiarisme.
  5. Selama kontes berlangsung, peserta tidak diijinkan untuk:
    • Berkomunikasi dengan semua orang (selain dengan tim juri hanya melalui sistem klarifikasi) dalam bentuk apapun dengan media komunikasi apapun;
    • Melakukan plagiarisme, baik terhadap program peserta lain maupun program yang Anda rujuk, seperti yang tertera pada poin 4;
  6. Peserta yang terindikasi melanggar peraturan yang tertera pada poin 5 akan didiskualifikasi dari lomba. Keputusan juri bersifat mutlak dan tidak dapat diganggu gugat.
  7. Peserta yang berhak mengikuti babak final adalah 30 peserta terbaik dengan minimal 1 submission yang berstatus ACCEPTED.

Babak Final

  1. Babak final akan dilaksanakan di Kampus Anggrek, BINUS University, Jakarta.
  2. Peserta akan diberikan 9 hingga 11 soal pemrograman dengan durasi perlombaan selama 5 jam.
  3. Peserta bisa menanyakan klarifikasi mengenai soal melalui sistem yang disediakan. Jika juri setuju bahwa terdapat ambiguitas pada soal, maka klarifikasi akan diberikan kepada seluruh peserta.
  4. Scoreboard tidak akan diupdate (frozen) mulai dari menit ke-241 (60 menit menjelang akhir kontes). Peserta tetap dapat mengirimkan jawaban, dan respon dari grader tetap akan diberikan, namun hasilnya tidak akan ditampilkan di scoreboard.
  5. Peserta diperbolehkan untuk membawa dan menggunakan alat tulis atau printed material seperti buku, kamus, atau salinan program (tertulis/tercetak) yang banyaknya tidak melebihi kapasitas kotak yang disediakan panitia (dimensi: 29 x 22 x 24 cm).
  6. Selama kontes berlangsung, peserta tidak diijinkan untuk:
    • mengganggu peserta lain,
    • berdiskusi atau berbicara dengan peserta lain atau pembimbing,
    • membawa atau menggunakan flash drive, disc/disk, atau media sejenisnya yang dapat digunakan untuk menyimpan data soft copy,
    • membawa atau menggunakan alat elektronik bawaan sendiri.
    • melakukan tindakan penyontekan atau plagiarisme pada saat lomba berlangsung.
    Peserta bisa menitipkan barang-barang bawaannya di loker yang tersedia di setiap ruangan lomba.
  7. Refreshment (snack dan minuman) akan disediakan oleh panitia di depan ruang lomba.
  8. Keputusan juri bersifat mutlak dan tidak dapat diganggu gugat