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:
- 20 tim peringkat teratas di babak penyisihan
- 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.
- 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
Waktu | Event |
0:00:00 | Kontes dimulai |
0:15:13 | Submit sebuah run untuk soal A, mendapat No - Wrong Answer |
0:25:14 | Submit sebuah run untuk soal C, mendapat No - Time Limit Exceeded |
0:30:02 | Submit sebuah run untuk soal A, mendapat No - Presentation Error |
0:32:56 | Submit sebuah run untuk soal A, mendapat Yes |
2:10:34 | Submit sebuah run untuk soal B, mendapat Yes |
5:00:00 | Kontes berakhir |
Problem | Pinalti Waktu |
A | 73 (menit 33 + 2 prior rejected runs) |
B | 131 (menit 131) |
Total Pinalti Waktu | 204 menit |
Jadi, tim ini telah sukses menyelesaikan 2 masalah dengan total pinalti waktu 204 menit.
|