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 Indonesia dalam bentuk PDF (tidak diberikan hard copy dari problemset).
  2. Peserta dapat mengakses halaman "Problemset" pada sistem untuk melihat detail berikut:
    • judul soal,
    • file PDF soal,
    • batasan waktu,
    • batasan memori, dan
    • contoh input dan output soal yang bersangkutan.
  3. Setiap soal yang diberikan terdiri dari:
    • Kepala Soal – judul soal.
    • Deskripsi Permasalahan – latar belakang dan paparan permasalahan.
    • Batasan – batasan dari variabel input.
    • Format Input – format input yang akan diberikan.
    • Format Output – format output yang diterima.
    • Contoh Input/Output – contoh input beserta output yang harus dihasilkan, dan penjelasannya (bila ada).
  4. Program peserta harus membaca input dari standard input (stdin) dan menulis output ke standard output (stdout).
  5. 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 3, dan
    • Java
    Sistem sudah diinstalasi dengan compiler sebagai berikut:
    • C/C++17: GNU GCC 9.2.0,
    • Java: Java 11.0.20, dan
    • Python: Python 3.8.10.
  6. Semua solusi yang digunakan oleh tim juri adalah dalam C++17, dan mampu menyelesaikan semua soal yang ada dalam batasan yang diberikan. Perlu diperhatikan bahwa solusi dalam bahasa Python dan Java bisa saja lebih lambat dibandingkan dengan bahasa C++17, dan tidak dapat memenuhi batas waktu yang diberikan meskipun menggunakan algoritma yang sama.
  7. 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.
  8. Setiap program yang disubmit akan mendapatkan salah satu dari respon (verdict) 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 dalam batasan waktu dan memori yang ditentukan, namun menghasilkan jawaban yang salah pada salah satu kasus uji.
    • RUNTIME ERROR – program Anda mengalami crash (runtime-error) dan/atau berjalan melebihi batas memori yang ditentukan ketika sedang diuji.
    • TIMELIMIT – program Anda berjalan melebihi batas waktu yang ditentukan.
    • NO-OUTPUT – program Anda tidak menghasilkan keluaran.
    • COMPILE-ERROR – program Anda tidak bisa dikompilasi.
  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 dapat didiskualifikasi dari babak final ini dan di-blacklist dari BNPCHS selanjutnya.
  11. 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, yaitu jumlah penalti dari semua soal yang berhasil diselesaikan (ACCEPTED)
    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 akan 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 mana pun, dengan urutan apa pun.

Klarifikasi

Peserta dapat menanyakan klarifikasi melalui fitur “Clarification” pada DOMJudge mengenai hal-hal (terkait soal, sistem kompetisi, dan sebagainya) yang dianggap kurang jelas melalui sistem yang disediakan. 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

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.
  7. Peserta bisa menitipkan barang-barang bawaannya di loker yang tersedia di setiap ruangan lomba.
  8. Refreshment (snack dan minuman) akan disediakan oleh panitia di depan ruang lomba.
  9. Keputusan juri bersifat mutlak dan tidak dapat diganggu gugat