Pengenalan Competitive Programming


Competitive programming adalah suatu kompetisi untuk menyelesaikan masalah-masalah (problems) secara algoritmik dengan cara menulis program komputer. Program komputer tersebut harus dapat menghasilkan jawaban yang benar dalam jangka waktu tertentu dan dengan batasan memori tertentu.


Berikut salah satu contoh problem / masalah:

Gambar suatu problem pada competitive programming


Berikut penjelasan masing-masing nomor pada gambar diatas:


1. Time limit dan memory limit

Setiap problem harus diselesaikan dibawah batas waktu dan batas memori yang ditentukan. Program yang kita submit akan dianggap salah apabila waktu jalan dan memori program melebihi batas yang ditentukan.


Pada contoh diatas, batas waktu yang ditentukan adalah selama 3 detik dan batas memori sebanyak 5000 kilobytes. Apabila program anda berjalan selama lebih dari 3 detik, maka anda akan mendapatkan Time Limit Exceed (Kesalahan program karena melebihi batas waktu). Apabila program anda memakan memori lebih dari 5000kb, maka anda akan mendapatkan Memory Limit Exceed (Kesalahan program karena melebihi batas memori).


2. Problem statement.

Deskripsi suatu problem dan apa yang harus kita selesaikan akan dijelaskan di bagian problem statement.


Pada contoh diatas, kita disuruh untuk menyelesaikan masalah tentang penjumlahan kedua bilangan. Problem statement diatas menjelaskan bahwa sistem akan memberikan dua bilangan bulat yang dialiaskan sebagai a dan b, lalu kita harus mensubmit program yang mengeluarkan output berupa penjumlahan kedua bilangan itu.


3. Sample test case.

Test case adalah kasus pengujian program dimana program yang disubmit akan diberikan inputan-inputan oleh sistem, lalu output dari programmu akan dicek apakah sama dengan output yang tertera pada test case. Program akan dianggap benar apabila output program sesuai dengan output masing-masing test case. Setiap problem memiliki beberapa test case, Test case yang tertera pada problem hanyalah contoh (Sample test case), test case lainnya akan tersembunyi dan hanya akan dipakai saat pengecekan program berlangsung.


Pada contoh diatas tertera dua sample test case, pada testcase pertama sistem akan menginputkan angka 3 dan 2, program yang kita submit diharapkan mengeluarkan output angka 5. Pada test case kedua sistem akan menginputkan angka 1 dan 1, dan program yang kita submit diharapkan mengeluarkan output angka 2.


Maka contoh solusi program yang benar adalah sebagai berikut:

Gambar solusi problem penjumlahan


Coba langsung selesaikan problemnya disini

Copyright © 2021 CPPens