Peraturan

Overview

Setiap tim diberikan beberapa paparan permasalahan yang masing-masing akan disertai dengan contoh input/output-nya. Program yang dikirimkan peserta akan diuji oleh juri dengan menggunakan set data khusus (tidak diberikan kepada peserta). Untuk setiap program yang gagal, juri hanya akan memberitahukan status kesalahan program tersebut tanpa menginformasikan detil atau testcase yang membuat program tersebut gagal. Tim yang menyelesaikan soal paling banyak dengan jumlah pinalti waktu terkecil akan keluar sebagai pemenang kontes ini.

Soal

Setiap soal akan diberikan dalam bahasa Inggris dan akan berisi:
- Deskripsi Soal : latar belakang dan paparan masalah
- Spesifikasi Input : spesifikasi untuk input, batasan/constrain dan formatnya.
- Spesifikasi Output : spesifikasi untuk output dan formatnya.
- Contoh Input/Output : contoh input/output yang harus dihasilkan oleh program.
- Jumlah soal : untuk babak penyisihan terdapat 5 soal, untuk babak final terdapat 7-10 soal
- Bobot soal : bobot setiap soal adalah sama

Input/Output

Program/Run yang dikirimkan harus membaca dari standard input dan menulis ke standard output.

Bahasa Pemrograman

Bahasa pemrograman yang digunakan adalah C/C++ atau JAVA (lihat ketentuan kompiler di bawah). Peserta bebas memilih salah satu dari bahasa tersebut untuk menyelesaikan masing-masing soal.

Kompiler

Kompiler yang disediakan adalah:
C/C++: GCC (MinGW dengan IDE: DevCPP)
JAVA: JAVA 6

Environment (Babak Final)

Setiap tim akan menggunakan sebuah komputer dengan spesifikasi:

IDE:
-C/C++: DevCPP download
-JAVA: TextPad downloads
-JAVA: Eclipse download

Contest Management System:
-PC^2: download

Manual References:
-JAVA Documentation: download
-C/C++ STL Documentation: download

Untuk final OS yang akan digunakan adalah Windows XP 2

RUN

RUN adalah program jawaban yang dikirimkan oleh peserta kepada juri. Setiap RUN akan dinilai dan hasilnya akan diberitahukan langsung kepada peserta tersebut ketika kontes berjalan. RUN yang benar akan disebut sebagai ACCEPTED sementara yang salah akan disebut sebagai REJECTED. Setiap Rejected Run akan disertai salah satu informasi berikut:
- Presentation Error (jawaban benar tapi format output salah)
- Wrong Answer (output program salah)
- Run-Time Error (program mengalami crash/run-time error ketika dijalankan)
- Time Limit Exceeded (lihat ketentuan mengenai Batasan Waktu)
- Compile Error (program tidak berhasil dicompile)

Batasan Waktu RUN (Time Limit)

Batasan Waktu RUN adalah waktu eksekusi maksimum yang diizinkan pada sebuah RUN untuk menghasilkan output dari semua input yang diuji. RUN yang tidak berhenti/terminate setelah melebihi batas waktu akan dianggap REJECTED dan diberi status Time Limit Exceeded. Batasan Waktu RUN akan dicantumkan di setiap soal.

Permintaan Klarifikasi

Setiap tim boleh mengajukan klarifikasi soal ketika kontes berlangsung dengan menggunakan sistem yang tersedia. Jika tim juri setuju bahwa soal tersebut mengandung pernyataan ambigu atau ada kesalahan, maka klarifikasi tersebut akan diinformasikan ke semua tim.

Penilaian Kontes

Paling banyak 50 tim yang menyelesaikan minimal 1 soal berhak melaju ke babak final dengan perincian sebagai berikut:

  1. 20 tim peringkat teratas di babak penyisihan
  2. 1 tim terbaik dari masing-masing universitas dengan ketentuan:
    • tidak ada tim pada 20 peringkat teratas yang berasal dari universitas tersebut.
    • paling banyak 30 universitas yang akan dipilih berdasarkan peringkat terbaik.
  3. hingga total tim mencapai 50 akan dipilih berdasarkan peringkat terbaik setelah menyisihkan tim yang sudah lolos pada poin 1 dan 2 dari daftar peringkat.

Tim dinilai berdasarkan jumlah soal terbanyak yang dapat diselesaikan (Accepted). Untuk tim yang jumlah Accepted-nya sama akan dinilai berdasarkan total pinalti waktu terkecil.

Pinalti waktu adalah jumlah waktu yang digunakan oleh sebuah tim untuk menyelesaikan sebuah soal. Pinalti waktu akan dihitung dari waktu kontes dimulai sampai dengan waktu soal tersebut diselesaikan (mendapatkan status Accepted). Jika soal yang berhasil diselesaikan pernah mendapatkan status Rejected (peserta pernah salah pada soal tersebut), maka untuk setiap Rejected Run pada soal tersebut akan dikenakan pinalti tambahan 20 menit.

Setiap soal yang tidak berhasil diselesaikan, meskipun telah di-reject berkali-kali, pinalti waktunya tidak akan ditambahkan ke total pinalti waktu semua soal.

Ilustrasi

WaktuEvent
0:00:00Kontes dimulai
0:15:13Submit sebuah run untuk soal A, mendapat No - Wrong Answer
0:25:14Submit sebuah run untuk soal C, mendapat No - Time Limit Exceeded
0:30:02Submit sebuah run untuk soal A, mendapat No - Presentation Error
0:32:56Submit sebuah run untuk soal A, mendapat Yes
2:10:34Submit sebuah run untuk soal B, mendapat Yes
5:00:00Kontes berakhir

ProblemPinalti Waktu
A73 (menit 33 + 2 prior rejected runs)
B131 (menit 131)
Total Pinalti Waktu204 menit

Jadi, tim ini telah sukses menyelesaikan 2 masalah dengan total pinalti waktu 204 menit.