Halo! Sudah lama sekali blog ini tidak pernah saya update lagi, sampai berdebu-debu. Jadi, kali ini saya mau menceritakan pengalaman saya setelah gagal OSP, dan intinya saya akan menceritakan kontes pemrograman saya yang pertama kali onsite yaitu PCS(Programming Competition Session) yang diadakan oleh Universitas Gadjah Mada Yogyakarta bulan lalu. Baru sempat dan ada mood untuk nulis blog lagi sekarang, sorry fot late post(lol). Sekedar mengingatkan, post ini akan panjang sekali dan banyak hal tidak pentingnya. Read at your own risk (lol).
Background
Kembali lagi ke bulan Februari 2015, waktu itu saya sedang mengikuti kegiatan pelatihan Pra-OSP yang diadakan oleh lembaga ALC di Bandung. Saat di kelas, saya melihat-lihat news di grup Olimpinfo tentang PCS, dan kaget nya saya tidak menyangka tahun ini ada sistem divisi semacam CodeForces gitu. Jadi dibedakan divisi yang senior (yang sudah pernah menang / dapet medali di kontes-kontes pemrogaraman) dan dvisi yang junior (yang masih newbie dan belum pernah menang sebagai juara 1 - 3 / belum pernah dapet medali).
Tidak lama setelah itu, ternyata UGM juga membuka program pelatihan semacam pelatihan jarak jauh, tapi sayangnya tidak gratis. Akhirnya saya memutuskan untuk daftar program pelatihan/tutoring jarak jauh itu, mengingat kemampuan pemrograman dan pengetahuan saya akan algoritma masih sangat minim. Singkat cerita, saya ditutor oleh mahasiswa UGM yang juga anggota dari Divisi Competitive Programming OmahTI dan alumni OSN yaitu ko Carfin. Saya daftar pelatihan ini sebelum OSP dimulai, tapi saya minta agar pelatihannya dimulai setelah OSP selesai. Jadi sistem pelatihannya ini semacam tutoring, saya dikasih uraian singkat tentang materi yang dibahas, lalu diberi soal-soal di online judge yang lain, kalau ada kesulitan maka saya tanya ke tutor saya, sekaligus progress saya juga dipantau dan dievaluasi oleh tutor saya tersebut. Setelah OSP selesai, saya mencoba untuk berlatih dan mengerjakan berbagai soal yang diberikan oleh ko Carfin di beberapa online judge yaitu UVa dan SPOJ. Soal-soal yang diberikan itu menyangkut materi greedy, DP, dan graf dengan harapan bahwa saya lebih siap kalau misalnya saya lolos OSP dan sekaligus berlatih untuk PCS UGM. Setelah itu, saya memutuskan untuk mendaftar pada kontes PCS ini, karena saya sadar diri bahwa saya masih sangat lemah dan cupu, akhirnya saya memilih untuk daftar divisi 2, and I thought this will be a good start for my Competitive Programming achievement if I manage to win. Meski PCS ini perlombaan tim yaitu satu tim maksimal 2 orang, saya memutuskan untuk mengikuti kontes ini sendirian dikarenakan banyak alasan. Alasan tersebut antara lain tidak ada nya orang yang mampu dan cukup berpengalaman di bidang ini, daripada nanti saya repot menjelaskan dan merasa terbebani oleh rekan saya, akhirnya saya memutuskan untuk mengikuti kontes ini sendirian.
Nah, OSP itu pengumumannya keluar sekitar 3 minggu'an kan, jadi selama 3 minggu itu saya berusaha untuk berlatih dengan harap-harap-cemas gitu deh(meski aku tidak terlalu berharap lolos sih), dan yang tak ku sangka lagi itu banyak sekali yang galau gara-gara OSP. Karena OSP itu, aku akhirnya jadi kenal orang jago, masih kelas 9, cewe, dan namanya Kezia Sulami, alumni OSN Matematika dia. Tiba-tiba suatu hari dia itu ngechat facebook ku tanya aku jawab berapa soal di OSP. Tak ku sangka orang yang pra-osp nya rank 1 bisa segalau itu :o Jadinya ku kira masih ada harapan juga sih aku lolos OSP kalau begitu. Setelah itu, akhirnya pada tanggal 8 April 2015 pengumuman OSP keluar, dan nama saya tidak tercantum di dalamnya. Saya kaget, karena saya kira kemungkinan saya lolos masih cukup besar meski saya rasa dan sadar bahwa performa saya waktu OSP itu sangat kurang. Setelah saya tahu kalau saya tidak lolos ke tingkat nasional, saya sempat tulis post tentang berakhir nya perjalanan dan perjuangan saya di olimpiade di blog saya(silahkan di cek sendiri). And that day, I finally realized and experienced the pain of regret. All of my hopes were crushed so hard that I cried and screamed so hard for 2 days until I confessed to God and somehow I began to accept the result. Sempat down untuk beberapa minggu sampai sepenuhnya saya bisa terima kalau saya gagal OSP. Setelah itu tentu tidak mudah buat saya untuk kembali berlatih lagi seperti biasa untuk mempersiapkan kontes selanjutnya yaitu PCS JOINTS. Setelah tahu kalau saya gagal di tingkat OSP, jam latihan saya semakin berkurang, dan bisa dibilang saya jarang sekali latihan coding lagi.
Penyisihan
Singkat cerita, akhirnya hari penyisihan pun tiba yaitu Senin tanggal 27 April 2015. Penyisihan diadakan online pada jam 7. Sekitar jam 6 setelah bangun tidur dan mandi saya sudah siap di depan komputer saya. Setelah tepat jam 7, soal sudah bisa dilihat dan terdapat 5 soal. Saya masih ingat betul saran dari ko Carfin yaitu jangan sampai salah pilih soal untuk dikerjakan, se-enggaknya saya harus bisa accepted minimal 1 lah. 10 menit pertama saya gunakan untuk skimming semua soal dulu, ini kebiasaan yang saya paksa karena biasanya saya langsung terburu-buru untuk ngoding terlebih dahulu kalau sudah baca soal dan ada gambaran solusi (this is not a good practice lol). Sayangnya, 5 soal itu tidak diupload ke website jadi tidak mungkin saya share juga.
Setelah skimming soal itu saya dapat gambaran solusi soal D yang cukup mudah menurut saya, yaitu hanya mencari median dari barisan digit-digit bilangan prima dari interval L sampai R. Misalnya: untuk L = 1 dan R = 20, maka barisannya yaitu: 2,3,5,7,1,1,1,3,1,7,1,9 dan mediannya adalah (1+1) / 2 = . Cukup mudah kan? Saya dapat idenya, jadi saya hanya perlu generate bilangan prima pakai sieve of Eratosthenes saja dan masukkan ke array namun dipisah perdigitnya. Setelah 15 menit, program saya berjalan sebagaimana mestinya dan saya mencoba untuk uji sample testcase, dan sudah benar. Saya coba submit, malah dapet run time error --' Bingung entah kenapa dapat run time error, karena waktu itu saya pakai vector(array dinamis), jadi seharusnya nggak masalah. Akhirnya, saya iseng-iseng ganti approach, tidak menggunakan sieve, tapi generate bilangan prima nya dari L sampai R saya cek satu-satu apakah bilangan tersebut prima atau tidak(kita hanya perlu cek apakah N bilangan prima dengan cara mencek satu-satu apakah bilangan N itu habis dibagi oleh 2 sampai trunc(sqrt(N))). 15 menit kemudian, saya submit, dan malah dapat wrong answer. Padahal saya sudah uji testcase satu satu dan hasilnya benar. Saya sempat menduga kalau di interval bilangan dari L sampai R itu tidak ada bilangan prima apakah harus outputkan 0? Tapi saya tidak yakin dan saya kira tidak perlu output apa-apa.Ini kesalahan terbesar saya, saya tidak mencoba untuk outputkan 0. Bingung, frustrasi, karena sekitar 30 menit'an itu sudah banyak yang accepted soal ini. Akhirnya saya iseng-iseng coba soal C, ini soal relasi rekurens, tapi saya maksa banget pakai kombinasi biasa padahal jelas ini salah. Waktu sisa 1 jam, frustrasi sekali belum ada yang accepted, seolah-olah tidak ada harapan lagi saya lolos penyisihan. Akhirnya, saya mencoba soal A, cukup mudah yaitu hanya mengurutkan list nilai saja. Saya pernah mengerjakan soal tipe seperti ini, tapi soal ini lebih susah, karena prioritas sort nya ditentukan dan berbeda-beda tiap testcase, dan lebih lagi yang perlu disort ini ada 6 prioritas. Saya yakin bahwa program saya pasti akan buggy. Dan ternyata dugaan saya benar, terdapat banyak sekali bug di program saya sampai-sampai waktu pengerjaan soal itu habis dan saya belum submit untuk soal ini dan belum ada submisi soal saya yang accepted. Pasrah, dan frustrasi yang jelas. Iseng-iseng refresh website, loh, kok masih ada waktu 1 jam lagi? Kebodohan terbesar saya waktu penyisihan ini saya tidak membuka menu klarifikasi, jadi saya tidak tahu kalau ada beberapa klarifikasi soal dan penambahan waktu. Saya tahu ada penambahan waktu karena saya iseng-iseng refresh page. Akhirnya saya mencoba untuk tetap mengerjakan soal sort tadi dan debugging kode saya yang barusan. Akhirnya program saya berjalan seperti apa yang saya inginkan (saya pakai pair 6 kali untuk soal ini hahaha). Setelah submit, malah dapat wrong answer. Bingung sekali, waktu hanya tersisa 30 menit, dan saya sudah ada pikiran untuk menyerah saja karena sudah sedikit harapan untuk lolos ke final. Namun, saya mencoba untuk membaca soal sekali lagi. Ternyata soal itu hanya minta untuk mengoutputkan dari rank 1 - rank 100 yang sudah disort berdasarkan prioritas! Akhirnya, saya submit di 15 menit terakhir sebelum kontes berakhir, dan akhirnya accepted! Wah, gara-gara ketidaktelitian saya hampir saja saya tidak accepted 1 soalpun. Sisa waktu 15 menit, saya sadar sudah tidak bisa apa-apa lagi dan saya nekat hanya mencoba-coba submit soal D dan C yang tidak accepted tadi karena saya tahu soal B dan E memerlukan tedious coding dan termasuk tipe soal yang belum pernah ku selesaikan. Akhirnya, penyisihan berakhir, dan saya berada di ranking 14 dari ranking 15 yang akan diambil untuk masuk final. Mepet sekali kan? Argh T_T saya merasa lemah sekali, tetapi sekaligus bersyukur. Pikir saya waktu itu kalau ranking saya pas penyisihan bagus malah latihannya nanti jadi kurang keras dan kesannya meng-entengkan. Tapi sama aja sih, habis penyisihan saya malah jarang sekali dan hampir ga pernah coding lagi gara-gara urusan sekolah yaitu tugas-tugas ga penting yang melelahkan(baca:ngurusin KTI, buat film).
Final
Final PCS diadakan pada tanggal 18 Mei 2015 di Universitas Gadjah Mada Yogyakarta. Ini pertama kali nya saya akan pergi ke Yogyakarta ditemani oleh guru yang telah memperkenalkan saya dengan dunia pemrograman(Mr. Willy). Saya pergi ke Yogya naik kereta api pada hari Jumat 17 Mei 2015 jam 5 pagi, sampai di Yogya sekitar jam 2 siang.
Saya menginap di rumah kakak guru saya. Anehnya,saat saya berada di Yogya ini saya memanggil kakak guru saya ini dengan panggilan 'koko', sedangkan saya panggil guru saya sendiri 'Bapak', karena ngga enak, akhirnya saya memutuskan untuk memanggil guru saya selama di Yogya ini dengan panggilan 'koko' juga -___- (random topic).
Malamnya, saya diajak makan oleh kakak guru saya ini(panggilan: Ko Ai). Dan memang, kesan pertama saya untuk kota Yogya ini adalah: kulinernya luar biasa @_@ harganya juga miris-miris tidak terlalu beda di kota saya, murah sekali._. Akhirnya balik lagi ke rumah ko Ai, terus saya ngapalin beberapa algoritma yang saya kira mungkin berguna pas kontes. Setelah itu, tidur.
![]() |
Ditinggal sendirian saat pembukaan._. |
Ternyata kontes masih dimulai agak lama lagi, jadi kita menunggu di ruangan itu sambil disambut oleh kakak-kakak panitia PCS. Nah, waktu itu HP ku silent, sedangkan aku sebelumnya sms kalau mau pakai keyboard dan mouse sendiri, dia bilang langsung bawa aja ke meja administrasi, ku kira nanti pas jalan ke ruang pengerjaan soal, jadi aku santai-santai aja mah. Karena HP ku silent, saya ga tau kalau ko Carfin sampai telpon aku sekitar 2x tapi nggak ku angkat-angkat, akhirnya dia datengin aku ke kursi ku, ya ini lah pertama kali aku bertemu secara langsung dengan tutor pelatihan UGM ku itu. Akhirnya aku disuruh bawa keyboard dan mouse yang mau ku pakai ke depan, nah karena keyboard ku itu mechanical keyboard(Corsair K70 Cherry MX Blue Switch & SteelSeries Sensei Raw), jadi aku bawa sekardus-kardusnya, lumayan berat dan besar. Akhirnya pas di meja administrasi ku kasih langsung ke ko Carfin, dia kaget karena dikira keyboard biasa aja gitu. Dia langsung bilang: "Daf*q? Kamu ke sini mau ngoding apa ngegame sih?" sambil ketawa-ketawa gitu. Setelah itu keyboardku dibawa untuk dipasang di meja pengerjaan soal pas kontes nanti, aku kembali ke ruangan sambil menunggu diarahkan untuk menuju ruang kontes, dan disana itu gj sekali._. Setelah ku lihat-lihat peserta yang ada di ruangan, ternyata cukup sedikit. Seingetku, yang lolos final divisi 1 itu hanya 7 orang terus aku dapet kabar si Kezia Sulami yang jago itu ga dateng karena masalah booking tiket pesawat, terus ko Josua Aditya Mustiko juga katanya nggak datang, jadi ku kira yang datang +- 5 orang lah tapi aku gak tau ternyata yang datang itu hanya 3 orang dari divisi 1._. Sebelum itu aku juga liat di daftar peserta pas registrasi ulang tidak ada beberapa nama yang aku familiar dan lolos OSN. Jad, banyak yang gak dateng karena masalah tiket pesawat sepertinya._. Gara-gara si Kezia itu ga dateng, akhirnya Glenda jadi peserta perempuan sendirian, dan karena dia masih kelas 9 juga, akhirnya selalu digodain sama panitianya, disuruh maju ke depan buat sharing tips-tips gitu, miris sih liatnya karena selalu dia yang disuruh wkwkwk. Setelah pembacaan peraturan, teknis dan lain-lain, kami akhirnya dipandu oleh kakak panitia menuju ke ruangan kontes yang ada di lantai atas. Makanan dan minuman boleh dibawa tapi harus ditaruh luar lab dan disediakan meja khusus di luar lab itu.
![]() |
Memasuki Laboratium |
Akhirnya kami masuk ke lab, disuruh duduk di depan komputer masing-masing, lalu kami disuruh login ke mooshak dan mengecek ada gangguan atau tidak. Btw, ini komputernya butuh untuk terkoneksi ke internet untuk mengakses website kontes yaitu mooshak, jadi kami dilarang keras membuka website kecuali mooshak. Kontes dimulai jam 9,sedangkan jam menunjukkan masih sekitar 15 menit lagi sebelum kontes dimulai, saya memutuskan untuk meng-adjust komputer ini supaya saya rasa senyaman mungkin, yang pertama saya rubah adalah kecepatan pointer mouse waktu itu, karena saya rasa terlalu cepat saya turunkan speednya dari control panel. Nah, yang gak ku sangka ternyata kontes nya pakai IDE CodeBlocks, ku kira pakai DevC++ atau Geany gitu, karena di rumah udah kebiasa pakai CodeBlocks, saya bersyukur sekali._. Karena nganggur menunggu kontes dimulai, akhirnya saya memutuskan untuk membuat template per soal dari soal A - soal H, dari file .cpp nya sampai buat satu-satu file notepad untuk I/O redirection nya supaya lebih praktis nanti pas debugging dan uji testcase. Setelah selesai, masih tersisa waktu sekitar 10 menit'an, saya gunakan untuk mengetik template macro(define, typedef, dll) dengan kecepatan mengetik saya yang agak paksakan untuk lebih cepat. Nah, keyboard saya ini pakai switch Cherry MX Blue yang terkenal berisik dan clicky banget, jadi saya yakin pasti seruangan itu terganggu dengan suara ketikan saya, tapi saya mencoba cuek saja, karena tujuan utama saya bukan untuk mengintimidasi lawan sebenarnya, tapi untuk kepentingan kenyamanan pas ngetik.
Akhirnya, kontes dimulai. Kontes ini akan berlangsung selama 5 jam non-stop. Saya langsung mengecek lembaran soal yang sudah diprint dan disediakan di meja beserta kertas coret-coretannya. Terdapat 8 soal pada kontes PCS kali ini, 8 soal tersebut untuk divisi 2 adalah sebagai berikut:
(credits to Glenda, ngambil dari post di blogspot nya juga, kalau aku sempat bakal ku scan dan upload soalnya:D nanti)
Seperti biasa saya mencoba untuk skimming semua soal dulu, tetapi karena banyak soal yang background nya terlalu panjang, saya mencoba untuk mencari soal yang deskripsi nya singkat dan straightforward terlebih dahulu. Nah, ketemu yang deskripsinya cukup singkat dan straightforward, yaitu soal F (Terbilang). Jadi, soal ini sebenarnya cukup mudah, kita diberikan input bilangan desimal N yang berkisar dari 0 - 100 dengan maksimal panjang digit nya adalah 5(jadi maksimal 3 angka di belakang koma kan?), lalu kita disuruh outputkan terbilangnya(Misal, input: 10.01, maka outputnya harus: Sepuluh koma nol satu). Saya langsung ingat, ini soal pasti terinspirasi dari CodeForces, saya pernah mengerjakan soal ini, dengan constraint N yang sama, namun pada waktu itu N adalah integer, saya pernah menyelesaikan soal ini hanya dalam waktu sekitar 10 - 15 menit, tetapi karena ada tambahan bahwa N desimal, saya bingung bagaimana cara parsing antara bilangan depan koma dan bilangan belakang koma, karena saya tau kalau coding saya akan buggy nantinya, saya skip. Akhirnya saya baca soal E(Penjumlahan String), soalnya cukup mudah dan sekedar simulasi yaitu menjumlahkan 2 string biner dengan beberapa aturan saja. Lalu, saya coba coding dan simulasikan secara biasa, setelah selesai, saya coba uji sample testcase, dan hasilnya malah beda._. Saya bingung kenapa, dan saya duga ini salah dipenomeran string saya karena di soal penomerannya dimulai dari kanan, jadi memang sepenuhnya salah saya tidak teliti membaca soal, akhirnya saya coba baca soal lagi, coba coding lagi, dan saya sudah yakin penomeran indeks sudah benar, saya uji sample test case, masih salah._. Tambah bingung, itu sudah sekitar 30 menit setelah kontes selesai. Saya cek scoreboard, belum ada yang accepted ternyata. Akhirnya saya switch lagi ke soal Terbilang, ide nya saya sudah dapat karena pernah kerja soal semacam ini sebelumnya yaitu menyiapkan array string satuan(dari 0 - 9), lalu array string belasan(khusus untuk 10 - 19). Jika N <= 10 outputkan satuan[N], jika N >= 10 dan N <= 19, outputkan belasan[N%10], jika N > 20, outputkan satuan[N/10] + "puluh" + satuan[N%10](catatan: / = bagi(div), % = modulo). Nah, tetapi saya masih bingung untuk desimal nya bagaimana(belakang koma), saya bingung memisakahkan bilangan depan koma(depan titik) dengan bilangan belakang koma. Pertama saya coba menggunakan approach mencari bilangan belakang koma dengan mengurangi N dengan trunc(N), lalu bilangan depan koma dengan mengurangi N dengan bilangan belakang koma tadi. Bilangan belakang koma saya simpan dalam variabel double baru(ini kesalahan terbesar saya!), bilangan depan koma saya simpan dalam variabel integer baru juga. Setelah itu, saya uji testcase, masih salah. Masih banyak bug pula. Saya bingung, waktu sudah menunjukkan 48 menit, cek scoreboard, ternyata udah ada yang AC 1 soal yaitu soal terbilang. Agak panik saya, karena saya baru mulai kerja soal itu. Akhirnya saya coba debugging, dan ternyata ketemu salah saya memang di parsing bilangan depan koma dan belakang koma. Karena belakang koma nya saya masukkan ke variabel double, jadi ada precision error, yang harusnya 0,500 misalnya, malah jadi 0,499. Jelas salah kan? Dan bodohnya, saya sudah submit sekitar 2x waktu itu dan mendapatkan WA, benar-benar menambah penalty saya._. Saya baru sadar itu 90 menit setelah kontes berlangsung, dan belum ada soal yang AC 1 pun! Saya panik luar biasa, akhirnya saya putuskan untuk ke toilet untuk proses detoksifikasi (buang stress) pertama saya. Saat ke toilet, saya juga bawa coklat jadi sekalian makan coklat dan segera bertekad untuk mencoba coding soal Terbilang dan Penjumlahan String lagi dengan lebih teliti.
![]() |
Frustrasi belum ada yang accepted._. |
Akhirnya, kembali ke ruangan, saya mencoba coding soal Terbilang lagi. Akhirnya saya kebayang cara parsing yang lebih tepat, pakai scanf, jadi saya pisah bilangan depan koma dibaca sebagai integer, bilangan belakang koma saya baca sebagai array of char. Tetapi karena outputnya itu case-sensitive dan saya salah baca dan salah paham klarifikasi soal, akhirnya dapet WA lagi._. Akhirnya, setelah submission ke-6 saya pada soal tersebut, akhirnya saya mendapatkan verdict Accepted dengan tulisan warna hijau. Akhirnya, lega sekali saya, saya merasa ada secercah harapan untuk menaikkan peringkat! Waktu hanya tersisa 3 jam lagi, saya membutuhkan waktu 2 jam untuk accepted 1 soal karena ketidaktelitian saya lagi-lagi._. Saya putuskan saya mencoba soal E lagi(Penjumlahan String), saya curiga kenapa sample testcase saya salah, saya yakin kalau sample testcase benar pasti saya accepted soal ini. Padahal program saya sudah berjalan sebagaimana mestinya, tetapi output masih tetap salah. Akhirnya saya periksa satu-satu command per baris dar kodingan saya tersebut, ternyata kesalahan konyol lagi! Yang harusnya dalam operator if itu mengecek == '1', program saya mengecek == '0', jadi saya salah hanya gara-gara salah pengetikan satu angka saja._. Setelah saya fix, ternyata benar saja, sample testcase langsung benar. Saya coba untuk submit kode saya tersebut, dan benar dugaan saya, saya mendapatkan accepted kedua saya. Saya cek scoreboard, ternyata peringkat saya masih kurang memuaskan, tetapi sudah masuk dalam 6 besar, saya kira masih ada harapan untuk memperbaiki ranking lagi.
![]() |
Suasana Saat Kontes |
![]() |
I've Just Realized How Stressful Competitive Environment Is |
Akhirnya, saya mencoba untuk mengerjakan lagi soal B (Masa Lalu), saya yakin ini soal relasi rekurens karena saya pernah mengerjakan soal seperti ini di TLC bab 3 dan saat latihan OSP dulu, tapi ada modifikasi sedikit dalam soal ini. Saya mencoba-coba mencari relasi rekurens nya, tetapi karena tidak ketemu-ketemu, akhirnya submission saya itu wrong answer semua. Frustrasi, akhirnya saya menyerah untuk mengerjakan soal B ini.
Karena terlalu panik lagi, saya memutuskan untuk keluar dan pergi ke toilet lagi sambil makan coklat saya yang tersisa di toilet. Nah, saya masuk toilet, terus saya kunci dari dalam kan(bukan pakai kunci sih, tau sendiri kan tapi maksudnya?). Saya sudah menduga pas ke toilet pertama kali ada yang gak beres sama 1 ruangan di kamar mandi pria ini, ternyata benar. Pas saya mau keluar, saya tidak bisa membuka kunci / segel pintu itu(wah, segel :v). Saya mencoba minta tolong kepada salah satu peserta yang lewat dari toilet itu dan saya bilang bahwa saya terkunci, akhirnya dia juga kebingungan. Setelah itu, saya mencoba-coba untuk terus membukanya, ternyata berhasil. Tak ku sangka yang ke toilet itu ternyata ko William Chanrico yang duduk di sebelahku dan sementara ini ada di peringkat 1. Memang jago gitu sih kelihatannya, pas sesi latihan dan penyisihan dia selalu accepted soal paling banyak padahal dia sendiri gitu alias solo player haha. Akhirnya, saya mengucapkan terimakasih dan memintamaaf ke ko William itu, terus masuk lagi ke ruangan kontes dan melihat scoreboard.
![]() |
Satu jam pertama setelah kontes dimulai |
saya nekat koding soal A dengan kompleksitas solusi yaitu O(2^n), saya sudah yakin TLE sih, tapi iseng-iseng saja siapa tahu testcase nya jelek wkwkw. Saya coba koding complete search itu menggunakan recursive backtracking dengan 6 parameter, gila kan? Setelah menguji kode saya dengan sample testcase dengan N yang kecil dan benar, akhirnya saya submit. Benar dugaan saya, TLE(Time Limit Exceeded). Karena saya tidak kebayang solusi yang lain, akhirnya saya menyerah juga pada soal A ini. Saya cek scoreboard, ternyata peringkat saya turun ke peringkat 4 padahal jumlah accepted soal kami sama, hanya beda time penalty itu. Karena melihat ko William Chanrico sudah accepted soal G(Permainan String), akhirnya saya mencoba mengerjakan soal itu juga. Tetapi entah kenapa waktu itu saya nggak teliti lagi-lagi, akhirnya kode saya nge-bug lagi. Mencoba debugging, tapi tidak berhasil. Nah, saya juga merasa cukup terintimidasi, karena kontes ini kan ada sistem hadiah nya. Per-solve satu soal maka akan ada panitia yang mendatangi meja kita dan menaruh tas yang berisi hadiah gitu. Saya lihat sebelah kiri saya(ko William Chanrico) tas nya itu udah nambah banyak, sedangkan punya ku tetap 3._. Pas scoreboard sudah dibekukan akhirnya saya juga tau kalau dia accepted 6 soal gara-gara hadiah yang diantarkan oleh panitia tersebut.
![]() |
Sudah sedikit pasrah._. |
Akhirnya, waktu pengerjaan soal tersisa hanya 1 jam lagi, terdapat pengumuman bahwa scoreboard sudah dibekukan. Saya lagi-lagi mencoba membaca kembali soal C(Banjir), setelah ku baca lagi dengan seksama, ternyata soal ini mudah! Tetapi saya heran kenapa belum ada yang mengerjakan soal ini._. Ternyata soal ini hanya floodfill biasa yaitu mencari ruangan tertutup yang kekompleks'an ruanganya itu sama dengan hari yang diminta berdasarkan query nya. Saya coba coding biasa, setelah 10 - 15 menit'an , compile,uji sample testcase, dan program saya nge-bug._. Saya curiga bahwa saya salah di looping variabel nya, karena itu menggunakan koordinat dibidang kartesius(bukan baris dan kolom seperti matriks), saya sempat bingung. Karena mungkin terlalu frustrasi dan buntu tidak dapat submisi accepted lagi, saya sangat desperate mencoba debugging nya, akhirnya hanya mencoba-coba mengganti-ganti item yang tidak penting sampai menit-menit terakhir saya akhirnya coba submit. Malah dapat verdict MLE(Memory Limit Exceeded). Kontes berakhir, akhirnya saya pasrah. Melihat ko William(waktu itu belum kenal setelah kontes) yang accepted 6 soal itu, saya benar-benar pasrah apakah saya masih dapat juara harapan atau tidak._.
Setelah itu ko Carfin mendatangi ko William yang berada di sebelah saya dan mengajak ngomong saya dan mengomentari tentang keyboard saya. Ternyata ko William juga punya mechanical keyboard di rumahnya. Setelah itu, saya sempat mengajak ngomong ko William beberapa kali saat duduk di depan lab sambil bertanya-tanya tentang soal tadi dan OSN tahun lalu serta ngomongin orang-orang dewa lainnya.(SKSD banget kan :v, padahal kita belum kenal waktu itu). Hanya tersisa beberapa peserta saja yang di atas, sisanya sudah turun dan makan sambil menunggu di ruang tunggu. Kami akhirnya disuruh turun untuk menunggu di ruang tunggu. Akhirnya turun, sebenarnya nggak ada mood buat makan, tapi karena sudah 5 jam kontes dan lelah, saya putuskan untuk makan, ternyata menu nya lumayan enak(baca: ayam goreng) wkwkw. Sambil menunggu pengumuman, saya iseng buka facebook dan chat Glenda, meski kita kenal dari facebook, selama seharian itu aku belum pernah nyapa dia, akhirnya ku sapa dari facebook._. Aneh kan, kita seruangan, bukannya ngobrol, tapi malah chatting'an wkwkwk. Terus saya tanya di 1 jam terakhir dia sempat accepted soal lain atau nggak, ternyata nggak katanya. Wah, ternyata bukan saya saja yang tidak dapat submisi yang accepted lagi. Cukup lega karena ada orang yang merasakan hal yang sama :') Meski begitu, Glenda kelihatan pesimis banget, aku juga pesimis sih waktu itu, tapi dia bilang kalo aku harusnya masih dapet juara harapan gitu. Tapi aku udah ga terlalu ngarep.
![]() |
Suasana Setelah Kontes, Statistika dan Pembahasan Soal |
![]() |
Karena satu-satunya tim perempuan._. Miris |
Sambil menunggu pengumuman, ada panitia masuk dan memberikan statistika dan gambaran singkat solusi tiap soal. Ada beberapa hal yang menurutku unik. Ada istilah "first bite" dan "first blood", 2 2 nya itu diambil sama ko William Chanrico._. Jadi first bite itu orang yang pertama kali keluar untuk makan, dan first blood itu orang yang submission nya paling pertama accepted di antara divisi 1 dan 2. Pas kontes, karena ada peserta yang terlalu frustasi, akhirnya mereka malah foto-foto pakai webcam komputer dan wallpaper komputernya itu diganti dengan foto mereka._. (Lalu inti tulisan dari fotonyanya: nggak menang gapapa asal ganteng) *pfffft* aku cuma bisa ketawa waktu itu haha. Terus ada lagi yang bercita-cita sangat mulia pas kontes, jadi bu dokter._. Jadi ada yang submit program dengan command hanya seperti ini: writelin("Bu Dokter"); sekali lagi, aku hanya bisa ketawa._. Akhirnya dibahas tiap soal statistika nya gimana, dan ternyata di divisi 2, submisi yang TLE itu hanya 2 submisi, sampai panitia nya itu heran kenapa kok ada yang bisa TLE. Aku sadar dari 2 submission itu ada 1 submission ku yang ngawur sampai pake 6 parameter dengan kompleksitas O(2^n) tadi itu :v duh parah jadinya. Pas bahas statistik soal itu, terlihat nama ko William Chanrico(forst) sebagai first solve nya, jago parah._. Setelah itu soal hanya dibahas singkat-singkat saja dengan 1 kata kunci soalnya misalnya BFS, simulasi, DP, Greedy, dll. Tiba waktu nya pengumuman, waktu itu sambil menunggu pengumuman saya juga masih chat sama Glenda, dan satu lagi sama Kezia Sulami.

Foto-foto lengkap final PCS JOINTS UGM 2015 ini bisa dilihat di: https://www.facebook.com/media/set/?set=a.1002132679798615&type=3
Setelah PCS JOINTS UGM 2015 ini, saya semakin sadar bahwa saya harus berlatih dengan sungguh-sungguh dan berlatih dengan keras lagi. Meski competitive programming hanya menjadi suatu hobi bagi saya, masih banyak kontes yang harus saya perjuangkan ke depannya. Namun, menurut saya competitive programming hanyalah menjadi suatu hobi lagi bagi saya setelah kegagalan saya di OSP kemarin. Selain jalur OSN, menurut saya terlalu serius di bidang CP ini sudah terlalu risky jika tujuannya untuk mencari perguruan tinggi yang bagus. Maka dari itu, saya memutuskan untuk pensiun dari dunia CP SMA. (^^)
- Back to Home>
- My First Onsite Competitive Programming Contest: PCS JOINTS UGM 2015(Div 2)

Popular Posts
-
Halo, maaf udah lama ga update blog saya. (Bentar, emang ada readersnya ya?) Jadi 2 bulan terakhir ini banyak sekali pengalaman-pengalaman y...
-
Setelah BNPCHS 2014, saya juga nekat untuk daftar CompFest UI dan Open OSN. Singkatnya, CompFest UI diadakan sekitar 2 minggu setelah penyi...
-
Halo! Sudah lama sekali blog ini tidak pernah saya update lagi, sampai berdebu-debu. Jadi, kali ini saya mau menceritakan pengalaman saya se...
-
Hello! This is my first post in this blogspot, i'm still new in blogger but i'm thinking of making this blog as a log in my life so ...
-
Hi, it has been long time since my last post. Forgive me for not being able to post regularly (lol). Since I don't know what to write in...
-
Halo, disini saya mau menuliskan tentang persiapan saya untuk OSK Komputer 2015. Persiapan untuk OSN Komputer ini sebenarnya saya mulai lag...
-
Halo! Setelah lama tidak nge- blog , saya memutuskan untuk mulai sekarang juga menuliskan blog saya di dalam bahasa Indonesia. Jadi bukan n...
woo mantap iseng cari referensi joints nemu blognya wkwk, btw dulu waktu itu kelas berapa?
BalasHapusstalker dasar wkwk
HapusKirain masih bisa ikut pcs:))
Hapus