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

  • Peserta akan diberikan soal-soal pemrograman (algorithmic problem solving) dalam Bahasa Indonesia.
  • 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.
  • Program peserta harus membaca input dari standard input (stdin, default: keyboard) dan menulis output ke standard output (stdout, default: layar monitor).
  • Peserta bisa mengumpulkan (submit) solusinya kapanpun selama kontes berlangsung melalui sistem yang disediakan.
  • Pada tahun ini, terdapat jenis soal interaktif dimana program peserta akan berinteraksi dengan program juri. Program peserta akan menjadikan output program juri sebagai input dan program juri akan menganggap output program peserta sebagai input.
  • Jawaban yang disubmit adalah source code dari program yang dibuat (.pas/.c/.cpp/.java). Untuk tahun ini, source code dengan bahasa pascal sudah tidak diterima.
  • Program yang disubmit peserta akan diuji kebenarannya dengan data uji (rahasia) yang sudah dipersiapkan oleh juri sebelumnya. Data uji yang digunakan oleh juri dijamin sesuai dengan batasan input yang tertera pada soal.
  • Setiap program yang disubmit akan mendapatkan salah satu dari respon berikut:
    • ACCEPTED – program anda berjalan dalam batasan waktu dan memori serta berhasil menyelesaikan soal (data uji) yang diberikan dengan benar.
    • WRONG ANSWER – program anda berjalan sesuai dengan batasan waktu dan memori yang ditentukan, namun menghasilkan jawaban yang salah.
    • RUNTIME ERROR – program anda mengalami crash ketika dijalankan dengan data uji.
    • TIME LIMIT EXCEEDED – program anda berjalan melebihi batas waktu yang ditentukan (program dihentikan secara paksa).
    • MEMORY LIMIT EXCEEDED – program anda berjalan melibihi batas memori yang ditentukan (program dihentikan secara paksa).
    • COMPILE ERROR – program anda tidak bisa dikompilasi.
    dan dua respon tambahan:
    • OUTPUT LIMIT EXCEEDED – program anda menghasilkan output yang banyaknya melebihi batas yang ditentukan oleh grader: 20MB (program dihentikan secara paksa).
    • SUBMISSION ERROR – ada error dalam submission anda. Hubungi juri (melalui sistem klarifikasi) jika anda mendapatkan respon demikian.
  • Program yang disubmit tidak boleh:
    • memanggil system call,
    • mengeksekusi program lain,
    • menyerang sistem keamanan grader.

Compiler

Pilihan compiler yang disediakan adalah:
  • C/C++ (GCC/G++ 5.4.0)
      Gunakan %lld sebagai format specifier untuk tipe data long long.
  • JAVA (Java 8)
    • Nama class yang digunakan harus Main.

Sistem Penilaian

Sistem penilaian yang digunakan oleh BNPCHS 2020 mengikuti standard dari ACM-ICPC, yaitu:
  • 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.
  • 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.
  • 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).
  • Peserta bebas memilih untuk mengerjakan soal manapun, dengan urutan apapun.

Babak Penyisihan

  • Babak penyisihan akan berlangsung secara online melalui alamat web yang akan diumumkan kemudian.
  • Peserta akan diberikan 5 hingga 6 soal pemrograman dengan durasi perlombaan selama 3 jam.
  • 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.
  • Peserta yang berhak mengikuti babak final adalah 25 orang peserta terbaik, dan/atau 2 orang peserta terbaik dari tiap sekolah yang ikut dalam babak penyisihan dan berhasil menyelesaikan setidaknya 1 soal.

Babak Final

  • Babak final akan dilaksanakan secara online.
  • Peserta akan diberikan 9 hingga 11 soal pemrograman dengan durasi perlombaan selama 5 jam.
  • 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.
  • 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.