Peraturan

Babak Penyisihan

  1. Babak penyisihan terdiri dari dua sesi:
    1. Pilihan Ganda
      • Soal : 50 soal pilihan ganda
      • Durasi : 50 menit (waktu online 60 menit)
    2. Pemrograman
      • Soal : 3 soal pemrograman
      • Durasi : 120 menit (2 jam)
      • Setiap soal terdiri dari :
        • Deskripsi : latar belakang dan paparan masalah.
        • Spesifikasi Input : spesifikasi format dan batasan input.
        • Spesifikasi Output : spesifikasi format dan batasan output.
        • Contoh Input/Output : contoh input/output yang harus dihasilkan program.
      • Materi :
        • Pengurutan Data
        • Pencarian Data
        • Adhoc/Simulasi
        • Matematika Dasar
      • Pilihan Compiler :
        1. Pascal : Free Pascal 2.2.2
        2. C/C++ : MinGW 4.4.1 (Code Blocks 10.05)
        3. Java : Java 1.6.0_24
  2. Penilaian peringkat peserta yang akan digunakan sebagai dasar penentuan peserta yang lolos ke babak final adalah:
    1. Jumlah poin tertinggi dari kedua sesi penyisihan (poin dari kedua sesi dijumlahkan).
    2. Jika (a) sama, maka peringkat akan ditentukan berdasarkan "poin waktu" tertinggi dari sesi 1 (pilihan ganda).
  3. Ketentuan kontes sesi 1: pilihan ganda.
    1. Soal dalam bentuk pilihan ganda berbahasa Indonesia dengan 5 pilihan jawaban, 'A' sampai 'E'.
    2. Durasi pengerjaan 50 menit untuk 50 soal dengan setiap soal memiliki durasi awal 60 detik (lihat detil di poin 3.i).
    3. Server bisa diakses untuk sesi 1 selama 60 menit, namun perlu diingat bahwa durasi yang diberikan kepada setiap peserta untuk mengerjakan sesi 1 hanya 50 menit.
    4. Soal akan dikeluarkan satu per satu dan memiliki bobot yang sama.
    5. Peserta tidak bisa mengoreksi jawaban yang sudah dikirimkan.
    6. Semua peserta akan mengerjakan kumpulan soal yang sama namun dengan urutan acak yang berbeda antar peserta.
    7. Setiap jawaban yang benar akan mendapatkan poin 3 (tiga) dan setiap jawaban yang salah atau tidak dijawab akan mendapatkan poin 0 (nol). Tidak ada pengurangan nilai untuk jawaban yang salah.
    8. Selain poin dari setiap soal, peserta juga akan mendapatkan "poin waktu" berdasarkan sisa waktu pengerjaan (lihat detil di poin 3.i) yang akan digunakan sebagai penentu peringkat pada kasus poin akhir yang sama.
    9. Setiap soal memiliki durasi awal pengerjaan 60 detik, namun sisa waktu pengerjaan dari setiap soal akan ditambahkan sebagai bonus waktu untuk soal berikutnya. Sehingga, durasi soal = 60 detik + bonus waktu. Bonus waktu dari setiap soal dengan jawaban yang benar akan diakumulasikan sebagai poin waktu bagi peserta.
    10. Contoh perhitungan poin, poin waktu dan bonus waktu:

      Peserta A
      Soal keDurasi SoalWaktu Mengerjakan StatusPoinPoin WaktuBonus Waktu
      160 detik30 detikBenar33030 detik
      290 detik75 detikBenar64515 detik
      375 detik75 detikSalah64500 detik
      460 detik45 detikBenar96015 detik

      Peserta B
      Soal keDurasi SoalWaktu Mengerjakan StatusPoinPoin WaktuBonus Waktu
      160 detik45 detikBenar31515 detik
      275 detik19 detikSalah31556 detik
      3116 detik71 detikBenar66045 detik
      4105 detik80 detikBenar98525 detik

  4. Ketentuan kontes sesi 2: pemrograman.
    1. Soal dalam bentuk kasus berbahasa Indonesia yang harus dipecahkan dengan membuat programnya.
    2. Semua peserta diberi 3 (tiga) soal yang sama dan durasi pengerjaan yang sama, yaitu 120 menit. Server bisa diakses untuk sesi 2 selama 120 menit. Tidak ada penambahan waktu untuk yang terlambat melakukan login ke server kontes.
    3. Seluruh soal akan diberikan sekaligus kepada peserta melalui sistem yang disediakan di awal sesi 2 dan peserta bebas menentukan urutan pengerjaan soal.
    4. Semua soal memiliki bobot yang sama dalam penilaian dan sistem penilaian yang digunakan adalah full score, yang artinya jawaban hanya dinilai benar atau salah, tidak ada nilai parsial. Jawaban yang dikumpulkan namun dinyatakan salah akan mendapatkan poin pinalti saat soal tersebut berhasil diselesaikan dengan benar.
    5. Input dari program yang dibuat harus dibaca dari standard input (keyboard) dan output ke standard output (layar).
    6. Peserta bisa mengirimkan jawaban kapanpun selama sesi 2 berlangsung melalui sistem yang disediakan. Jawaban yang dikirimkan adalah source code dari program (.pas/.c/.cpp/.java), bukan executable atau class file hasil kompilasi.
    7. Jawaban yang dikirim peserta akan diperiksa oleh dewan juri menggunakan data uji yang sudah disiapkan sebelumnya (berbeda dengan contoh input/output yang tercantum pada soal) yang dirahasiakan dari peserta. Respon juri dari setiap jawaban yang dikirim adalah:
      • Yes - Accepted
        Output program peserta sesuai dengan data juri dan jawaban peserta dinyatakan benar untuk soal tersebut.
      • No - Wrong Answer
        Output program peserta tidak sesuai dengan data juri, termasuk format output.
      • No - Runtime Error
        Program peserta crash ketika dijalankan dengan input data juri.
      • No - Time Limit Exceeded
        Program peserta membutuhkan waktu lebih dari batas waktu (time limit) yang ditentukan untuk menghasilkan output dari data input juri. Time limit adalah batas waktu yang diijinkan kepada program peserta untuk selesai beroperasi dan menghasilkan output. Jika program peserta tidak berhenti dalam batas waktu yang ditentukan maka program akan dihentikan dan diberikan respon ini.
      • No - Compile Error
        Source code yang dikirim peserta tidak dapat dicompile oleh juri.
      Juri tidak akan memberikan tanggapan selain kelima respon di atas terhadap setiap jawaban yang dikirimkan.
    8. Waktu yang diperlukan juri untuk merespon jawaban peserta bisa bervariasi antara 30 detik sampai dengan beberapa menit tergantung banyaknya antrian jawaban yang menunggu untuk diperiksa, oleh karena itu peserta diharapkan memperhitungkan waktu tunggu ini dalam strategi masing-masing.
    9. Perolehan poin:
      • Setiap jawaban yang accepted mendapat score 100 poin. (3 soal akan mendapat total sekitar 300 poin, dipengaruhi bonus poin dan penalty poin)
      • Setiap jawaban yang di-submit tetapi tidak accepted, dikenai sanksi penalty score 10. Penalty score ini diperhitungkan pada saat jawaban tersebut accepted (benar), tidak dikurangkan dari poin yang telah didapat dari jawaban benar soal-soal sebelumnya.
      • Berdasarkan waktu penyerahan (pencatatan digunakan jam server), jawaban yang benar akan mendapat bonus poin. Bonus ini berupa 1 poin per 10 menit sisa waktu lomba.
      • Dalam hal penalty poin yang terlalu tinggi (terlalu banyak submit yang tidak accepted), nilai minimal yang diberikan untuk setiap jawaban yang accepted adalah 70 poin.
      • Contoh perhitungan:
        • Misalnya peserta mengirim jawaban pada menit ke-23 dan mendapat respon Yes - Accepted, maka bonus poin yang didapatkan adalah (120 - 23) / 10 = 9 (pembulatan ke bawah). Sehingga total poin yang didapatkan untuk soal tersebut adalah: 100 + 9 = 109.
        • Pada kasus di atas, seandainya sebelumnya peserta pernah mengirim jawaban untuk soal yang sama 2 kali namun masih mendapat respon No, maka poin yang diterima ketika soal tersebut berhasil diselesaikan (menit ke-23) adalah: 100 + 9 - (2 * 10) = 89.
        • Pada kasus yang sama, seandainya sebelumnya peserta pernah mengirim jawaban untuk soal yang sama 6 kali dan mendapat respon No, maka poin yang diterima ketika soal tersebut berhasil diselesaikan (menit ke-23) adalah: 100 + 9 - (6 * 10) = 49, karena 49 lebih kecil dari 70, maka poin yang akan diterima adalah 70.
    10. Peserta tidak diizinkan memberikan jawabannya kepada peserta lain. Jika juri menemukan ada dua atau lebih jawaban yang sama pada beberapa peserta, maka juri akan menganulir jawaban-jawaban tersebut.
    11. Selama kontes sesi 2 berlangsung, peserta diizinkan untuk bertanya kepada juri mengenai hal-hal yang tidak jelas pada soal melalui sistem yang sudah disediakan.

Babak Final

  1. Babak final terdiri dari satu sesi, yaitu pemrograman:
    • Soal : 8 - 10 soal pemrograman dalam bahasa Indonesia
    • Durasi : 5 jam (300 menit)
    • Setiap soal terdiri dari :
      • Deskripsi : latar belakang dan paparan masalah.
      • Spesifikasi Input : spesifikasi format dan batasan input.
      • Spesifikasi Output : spesifikasi format dan batasan output.
      • Contoh Input/Output : contoh input/output yang harus dihasilkan program.
    • Materi :
      • Pengurutan/Pencarian Data
      • Adhoc/Simulasi
      • Relasi Rekurens
      • Divide and Conquer
      • Algoritma Greedy
      • Dynamic Programming
      • Graph
      • Manipulasi String
      • Struktur Data Dasar
      • Teori Bilangan Dasar
      • Matematika/Geometri Dasar
    • Pilihan Compiler :
      • Pascal : Free Pascal 2.2.2
      • C/C++ : MinGW 4.4.1 (Code Blocks 10.05)
      • Java : Java 1.6.0_24
  2. Semua soal memiliki bobot yang sama dalam penilaian dan sistem penilaian yang digunakan adalah full score, yang artinya jawaban hanya dinilai benar atau salah, tidak ada nilai parsial. Jawaban yang dikumpulkan namun dinyatakan salah akan mendapatkan poin pinalti saat soal tersebut berhasil diselesaikan dengan benar.
  3. Seluruh soal diberikan sekaligus kepada peserta dalam bentuk hard copy (tercetak) dan peserta bebas memilih urutan pengerjaan soal.
  4. Input dari program yang dibuat harus dibaca dari standard input (keyboard) dan output ke standard output (layar).
  5. Peserta bisa mengirimkan jawaban kapanpun selama babak final berlangsung melalui sistem yang disediakan. Jawaban yang dikirimkan adalah source code dari program (.pas/.c/.cpp/.java), bukan executable atau class file hasil kompilasi.
  6. Jawaban yang dikirim peserta akan diperiksa oleh dewan juri menggunakan data uji yang sudah disiapkan sebelumnya (berbeda dengan contoh input/output yang tercantum pada soal) yang dirahasiakan dari peserta. Respon juri dari setiap jawaban yang dikirim adalah:
    • Yes - Accepted
      Output program peserta sesuai dengan data juri dan jawaban peserta dinyatakan benar untuk soal tersebut.
    • No - Wrong Answer
      Output program peserta tidak sesuai dengan data juri, termasuk format output.
    • No - Runtime Error
      Program peserta crash ketika dijalankan dengan input data juri.
    • No - Time Limit Exceeded
      Program peserta membutuhkan waktu lebih dari batas waktu (time limit) yang ditentukan untuk menghasilkan output dari data input juri. Time limit adalah batas waktu yang diijinkan kepada program peserta untuk selesai beroperasi dan menghasilkan output. Jika program peserta tidak berhenti dalam batas waktu yang ditentukan maka program akan dihentikan dan diberikan respon ini.
    • No - Compile Error
      Source code yang dikirim peserta tidak dapat dicompile oleh juri.
    Juri tidak akan memberikan tanggapan selain kelima respon di atas terhadap setiap jawaban yang dikirimkan.
  7. Waktu yang diperlukan juri untuk merespon jawaban peserta bisa bervariasi antara 30 detik sampai dengan beberapa menit tergantung banyaknya antrian jawaban yang menunggu untuk diperiksa, oleh karena itu peserta diharapkan memperhitungkan waktu tunggu ini dalam strategi masing-masing.
  8. Penentuan peringkat dan juara berdasarkan pada:
    • Jumlah soal dengan status accepted terbanyak.
    • Jika (a) sama, maka ditentukan dari jumlah poin tertinggi.
    • Jika (a) dan (b) sama, maka ditentukan dari total terkecil dari jumlah detik pengiriman semua jawaban yang mendapatkan status accepted.
  9. Perolehan poin:
    • Setiap jawaban yang benar akan mendapatkan 1 status accepted dan poin dasar 100 (seratus).
    • Setiap jawaban yang salah akan mendapatkan pinalti poin 20 yang hanya diperhitungkan ketika soal yang bersangkutan berhasil diselesaikan dengan benar (tidak dikurangkan dari poin yang didapatkan melalui soal lain).
    • Jawaban yang benar akan mendapatkan bonus poin sesuai dengan waktu pengiriman jawaban, 1 poin untuk setiap 5 menit sisa waktu kontes.
    • Contoh perhitungan:
      • Misalnya peserta mengirim jawaban pada menit ke-22 dan mendapat respon Yes - Accepted, maka bonus poin yang didapatkan adalah (300 - 22) / 5 = 55 (pembulatan ke bawah). Sehingga total poin yang didapatkan untuk soal tersebut adalah: 100 + 55 = 155.
      • Pada kasus di atas, seandainya sebelumnya peserta pernah mengirim jawaban untuk soal yang sama 2 kali namun masih mendapat respon No, maka poin yang diterima ketika soal tersebut berhasil diselesaikan (menit ke-22) adalah: 100 + 55 - (2 * 20) = 115.
      • Pada kasus yang sama, seandainya sebelumnya peserta pernah mengirim jawaban untuk soal yang sama 10 kali dan mendapat respon No, maka poin yang diterima ketika soal tersebut berhasil diselesaikan (menit ke-23) adalah: 100 + 55 - (10 * 20) = - 45.
      • Ingat bahwa peringkat peserta ditentukan terutama dari jumlah soal dengan status accepted terbanyak.
  10. Setiap peserta diperbolehkan melihat scoreboard sementara yang terdapat di ruang kontes dan di komputer peserta.
  11. Scoreboard di-freeze (tidak diupdate lagi) pada menit ke-60 menjelang akhir kontes. Peserta tetap dapat mengirim jawaban pada masa ini dan mendapatkan respon dari juri namun hasilnya tidak akan ditampilkan di scoreboard.
  12. Peserta diijinkan untuk melihat help dari compiler yang tersedia di komputer peserta.
  13. Peserta diijinkan untuk membawa dan menggunakan printed material seperti buku, kamus, listing program (hard copy), dll, yang banyaknya tidak melebihi kapasitas kotak yang disediakan oleh panitia (ukuran kotak P= 29 cm, L= 22 cm, T=24 cm)
  14. Selama kontes, peserta tidak diijinkan untuk:
    • menggangu peserta lain dalam perlombaan
    • berdiskusi atau berbicara dengan peserta lain atau pembimbing.
    • menggunakan data apapun dalam bentuk soft copy.
    • membawa disc, pen drive, usb drive atau media penyimpan sejenisnya yang dapat dipergunakan untuk menyimpan data soft copy.
    • membawa dan menggunakan alat elektronik bawaaan sendiri selain yang disiapkan panitia, seperti laptop, palmtop, PDA, handphone, kalkulator, dll. (untuk kalkulator dapat menggunakan yang terdapat pada komputer kontes).
    Peserta yang melanggar ketentuan akan didiskualifikasi.
  15. Selama babak final berlangsung, peserta diizinkan untuk bertanya kepada juri mengenai hal-hal yang tidak jelas pada soal melalui sistem yang sudah disediakan.