ICPC Jakarta 2018

Day 1 – Kedatangan, Pembukaan dan Practice Session

Jadi di sini aku mau nyeritain pengalamanku sendiri waktu ICPC Jakarta 2018. Jadi dari UGM ada 2 tim yang lolos buat ICPC Jakarta, yaitu tim ku : Sayata Kid Prim’s Sieve, dan tim Mampir_Bentar. Jadi, karena mas Sidiq lagi intern, tim kita berangkat hari Jumat malam, sementara tim UGM yang lainnya memilih untuk berangkat pagi. Kita berangkat sekitar jam 21.00 dari Jogja, dan perkiraan sampe nya itu jam 04:30 kalau gak salah. Tim kita pun memutuskan buat gak nginep 2 hari, jadi kita sampe di Stasiun Gambir, langsung ke Binusnya. Karena sia-sia banget kalo misalnya kita nginep extra satu hari cuma buat dipake mandi dan naruh barang.

Ternyata, kita sampe Jakarta udah mau jam 6. Artinya keputusan kita bener banget, karena kalo kita nginep, percuma jam 7 kita udah harus di Binus. Jadi kita istirahat bentar, mas Sidiq dan Ihsan sholat. Pas jam 6.45 kita berangkat ke Binus. Sampe Binus, kita dijemput escort Binus. Kalo gak salah namanya Kak Kris (?). Abis datang, kita registrasi make QR code. Dan lucunya, aku malah lupa bawa surat keterangan mahasiswa aktif. Yang akhirnya untung aja bisa diwakili dengan KTM. Pas datang, kita dikasih goodie bag yang isinya bolpoin, notes, dan kaos. Seharusnya, habis ini kita ke photobooth, tapi karena pak Anif belum sampai ke Binus (flight dari Jogja), kita pun disuruh untuk sarapan dulu.

Buat menu sarapannya, kalo gak salah ada nasi uduk, ayam goreng, telor. Aku gak makan banyak-banyak karena emang dari sananya gak biasa makan pagi. Habis sarapan, ke ruangan pembuakaan. Tepat sebelum pembukaan, ternyata pak Anif datang, kita pun foto bareng bersama pak Anif.

photobooth

PhotoBooth Sayata Kid Prim’s Sieve

Abis itu pembukaan, seingatku ada pertunjukan kolintang, sama techical talk dari Traveloka. Pas pembukaan, kita sempat ngilang sebentar buat narik uang, buat registrasi ICPC. Sehabis pembukaan, kita dikasih makan siang, padahal belum ada selang 3 jam dari sarapan tadi. Ya, aku gak pernah nolak makanan gratis sih. Sehabis makan, kita diredirect buat pergi ke ruangan untuk Trial Session. Jadinya, kita disini buat nyoba nyoba sistemnya.

Pas Trial, kita dapat ruangan 723, nomor 28. Di trial session ini ada 4 soal, kodenya masing-masing PA, PB, PC, PD. Nah, sebelum contest dimulai, kita udah dikasih hard-copy nya lebih dulu. Soal PA itu kita dikasih N buah bilangan, kita harus outputin sebuah bilangan, yang mana bilangan tersebut bukan nilai maksimal, nilai minimal, dan jumlahan dari semua bilangan yang ada. Udah coding, beres. Baca soal lain, Soal PD itu ternyata soal INC tahun lalu yang intinya nyari string terkecil yang tidak terdapat di substring string yang diberikan. Solusinya cukup cari substring “a” terpanjang. Nanti tinggal nyetak “a” sebanyak substring a terpanjang + 1. Soal PB itu soal ICPC 2017 : Meeting, dan soal PC itu soal ICPC 2017 : Make A Forest.

Hasil trial session, karena ngeklik cepat, kita dapat first solve di soal A sama D, penaltynya 0. Buat ngerjain sisanya, karena kita capek banget dari kereta, kita saling lempar-lemparan. Ganti-gantian ngerjain meeting, gak AC AC, 7 kali submit baru AC. Semoga real contest gak sesuram ini wkwk. PC one shot sih, dikerjain sama mas Sidiq. Sisa waktunya kita pake buat ngecek kurang lebih secepat apa sih gradernya. Semua barang yang mau dipakai buat besok (team notebook) ditinggal di contest room, mau dicek lebih dulu memenuhi standar atau nggak, dan besok mau ditaruh di workdesk masing-masing.

Habis selesai, kita ambil snack. Nah di snack itu ada ditawarin susu ultra milk. Aku dengan begonya nanya, ini boleh ambil lebih dari satu gak ya? Ternyata gak boleh ambil lebih dari satu. Habis itu mas Sidiq ngetoain namaku : “Itu orangnya namanya Josua kak”. Niat pengen dapet susu lebih, malahan jadi malu doang :(. Habis itu kita diantar ke admisi buat mesen go-car ke hotel. Jadi kita nginep di Grand Tropic Suites Hotel. Somehow, kita dapat ngeafford hotel yang bagus ini karena kita cuma nginep satu hari, sementara tim UGM yang lain nginap 2 hari. Jadi biaya buat 2 hari kita merge jadi satu hari. Nyampe hotel, kita check-in, karena kamar yang kita pesan somehow habis, kita dapat free upgrade ke Family Suites. Lucky us! Dapet kamar yang lebih gede (harusnya bisa buat 6 orang). Pas nyampe, aku istirahat bentar, karena aku mau jalan-jalan sama kakak ku. Oh ya, btw mas Widardi ikutan nginap di sini (freeloader :p). Pas kakakku nyampe ke hotelku, kita jalan-jalan ke Central Park, di sana kita makan Zenbu, habis itu mampir bentar ke Taman Anggrek buat ke Uniqlo belanja jaket kakak ku, sama makan di J.CO. Di sana aku ngobrol beberapa hal sama kakakku, sama kebanyakan ranting perihal lomba GEMASTIK kemarin di mana aku underperform parah. Habis itu kakak ku balik kosannya, aku balik hotel. Pas nyampe hotel, Ihsan udah tidur, sementara mas Sidiq sama mas Widardi lagi main Ragnarok. Aku berendam bentar di bathub, terus lanjut tidur karena capek parah.

Day 2 – Contest Day

Paginya, kita bangun. Aku mandi duluan, terus aku tanyain udah pada mandi belum? Aku pikir Ihsan udah mandi, ternyata belom, lol. Jadi aku mandi, terus mas Sidiq, terus Ihsan. Kita berangkat sekitar jam 8-an. Pas sampe, reregist terus sarapan dulu. Sarapan contest day jauh lebih enak daripada Trial kemarin. Makan paginya ada sosis. Habis makan kita ke contest room di 729 nomor 71. Pas masuk, kita dikasih testing keyboard, terus akhirnya 15 menit sebelum mulai, komputer di-reset. Nunggu mulai, contest started!

Contest dimulai, aku baca soal A. Soal dapat dicek di TLX atau gym CF. Pas baca, aku langsung keingat sesuatu. 2 tahun lalu, soal A itu gak yang paling gampang. Ada banyak trapnya. Aku yakin kebanyakan solusi itu kalau karakter 0 cetak 1, kalau karakter 1 cetak 0. Tapi aku yakin itu bakal WA entah kenapa. Benar aja, pas lihat scoreboard, orang pada merah semua. Tiba-tiba pas 4 menit, ada tim dari Vietnam AC soal I. Mas Sidiq langsung baca soal I. Mas Sidiq pun langsung paham soal I. Karena penjelasan mas Sidiq waktu itu gak bisa langsung kupahami, aku minta tolong mas Sidiq yang koding. Aku juga agak gak pede karena waktu GEMASTIK, aku ngechoke parah early, bikin penalty tim kita jadi jelek banget. Mas Sidiq koding soal itu, dan soal I – Lie Detector AC pada menit ke-10.

Habis itu di menit yang sama aku ngeliat team Ucup AC soal L. Pas baca, sekilas soal Greedy. Terus mas Sidiq ngomong solusi DP, yang mana aku pikir terlalu ribet. Tapi karena aku gak yakin seratus persen sama solusiku juga, aku kasih mas Sidiq koding. Di saat yang sama, Ihsan nyari solusi buat soal A. Sementara itu aku baca soal lain. Aku ngebaca soal B, dimana aku paham maksud soalnya, tapi aku tau ini soal susah, which likely gak bakal bisa disolve di contest time oleh tim kita. Aku ngejelasin maksud soalnya ke mas Sidiq, kita berdua langsung spontan nyingkirin soal itu. Tiba-tiba ngeliat tim Jepang AC soal D. Dibaca sekilas ngeliat, apa ini BFS/DFS ya? Karena masih ngerjain-ngerjain A, kita tunda bacanya dulu. Ihsan nemu solusi buat A, yaitu kita cek jumlah nol dan jumlah 1 nya. Cetak angka dengan kemunculan yang lebih sedikit. WA. Ternyata endline nya double. Submit lagi, WA lagi. Terus aku batin dalam hati, kan checkernya ngehapus kelebihan spasi sama enter (._.), seketika langsung ngerasa bego max. Kayaknya masih ada yang kurang, tapi kok kita belum nemu-nemu ya. Aku pun mutusin buat baca D, sementara mas Sidiq koding untuk soal L.

“Eh, ternyata ini bukan BFS, ini tuh cuma nyari blok mana yang perlu diganti biar kita bisa mengunjungi semua tempat”. Yaudah aku diskusi sama Ihsan buat nyari polanya. Kita nemuin kurang lebih solusinya gimana, dimana di bagian tengah kita harus ngisi semua, terus butuh satu di bagian luar, dan itu harus bukan tile yang di pojok banget. Terus kita tiba-tiba kepikiran ada kasus khusus yaitu kalau N <= 2 atau M <= 2. Mas Sidiq ngerjain L make LCS, terus kena WA. Aku minjam komputer buat ngoding soal D. Minta tolong Ihsan buat ngecek kondisi dan kasus apa udah kecover semua atau belum. Pas udah yakin, submit, D – Icy Land AC di menit ke-88.

Awal yang gak terlalu baik. Ini serasa sama kayak 2 tahun lalu, earlynya suram … Mas Sidiq ngerjain L dan masih WA. Aku sama Ihsan masih mikirin soal A, dan udah nyoba attempt ketiga, kita bedain kasus genap dan ganjil. Kalo ganjil make cek jumlah 1 dan 0, kalau genap kita cetak 0 jika input nya 1 dan sebaliknya. Submit, WA lagi. Terus mas Sidiq ke WC sebentar, aku mastiin baca soal L lagi, aku diskusi bareng Ihsan dan ngomongin soal algoku. Ihsan setuju make algoritmaku, tanpa seizin mas sidiq aku pun ngoding buat soal L (maaf ya mas :”), di tengah-tengah coding mas Sidiq balik dari WC, aku ngasih tau aku recode soal L. Mas Sidiq udah nemu bug di codingannya, tapi karena aku udah terlanjur coding, aku lanjut coding soal. Ada bug dikit, cek bareng Ihsan, fix, submit. L – Binary String AC di menit ke 124.

2 jam AC 3, sebenarnya performanya bisa dibilang gak baik-baik banget sih. Ya udah, lanjut baca soal lain, kita nemu soal J itu soal DP. Awalnya, soal ini udah dibaca, tapi gak ternotice kalau constraintnya kecil. Yaudah, ide kita awalnya adalah generate semua subsequence, terus di dp. Aku coding generate subsequencenya, terus aku kasih ke mas Sidiq buat dicoding dpnya. Pas dikerjain, kena TLE. Terus kita pas ngitung kompleksitas, ternyata DP kita O(2^N * 2^N * N). Sementara mikirin cara pruningnya, kita ada ide konyol buat soal A. Dialognya kurang lebih kayak gini

Sidiq : Gimana kalo kita hapus ifnya, terus kalo emang dia 0 cetak 1, kalo dia 1 cetak 0
Ihsan : Kayaknya gak gitu deh
Josua : Mas, itu pasti yang dipikirin awal oleh semua peserta. Yakalik mas
Sidiq : Tapi counter casenya apa
Ihsan : Iya, aku belum nemu counter casenya sih
Josua : Yaudah kita coba aja deh

Submit A, WA (wkakakakaka). Dah jelas WA masih dicoba feelsweirdman. Udah buang-buang 4 submission, tiba-tiba di tengah jalan Ihsan nemu counter case buat soal itu. Di tengah-tengah coding, aku izin ke WC sebentar sekaligus ngambil snack buat ngisi stamina ku yang lemah kalau udah 3 jam ke atas. Pas aku balik, tiba-tiba aja balonnya udah nambah. A – Edit Distance AC di menit ke 176 dan di submission ke-5. Langsung lanjut ke soal paling solvable berikutnya, soal J. Aku ngomong bahwa aku takut generate nya kelamaan. Kita pun ngefixin generator subsequencenya, dan coba ngeimprove DP nya. Tapi masih TLE. Aku terus buat testcase random, yaitu sesuai maksimal constraint. Ternyata emang runningnya sekitar 4-5 detik. Tiba-tiba mas Sidiq dapat ide buat improve DP nya. Jadinya, yang tadinya kita make dp[indeks][nama_sblm_yg_diambil], kita coba optimize dengan make binary search. Submit, WA. Jadinya gak kena TLE, tapi WA. Debug, nemu testcase yang bikin WA, ternyata harusnya kita make upperbound, sementara kita make lowerbound awalnya. Submit, akhirnya J – Future Generation AC di menit 213.

Sisa waktu yang ada kita pake buat kerjain soal H. Meanwhile, aku coba nyari greedy buat solusi soal F. Sadly, sampai contest selesai, kita gak dapat nambah AC. Jadinya sekarang kita cuma ngincer dapet Top 12 National yang gak top 12 ICPC. Kita pun lunch sambil nunggu buat acara closingnya. Di sana, aku ngobrol sama mas Sidiq. Aku ngomong kalo misalnya masih ada top 12 national, kita pas rank terakhirnya prediksiku. Yaudah, kita tinggal ngarep aja. Karena agak kegantung, aku makannya dikit banget btw :”)

contest

Nonton master Sidiq coding, entah kenapa Ihsan gak ada di foto dan gak nemu foto lagi coding bareng Ihsannya T_T

Closing, ada review contestnya, terus masuk juga ke awardingnya. Awarding pertama itu pas First AC at Problem [x]. Seingatku, di sini tim Indo cuma menang di satu soal (Soal L), sisanya didominasi tim luar. Bahkan tim Korea dapat 4 penghargaan sekaligus! Wow. Jadi skip forward ke pengumumannya. Resolver dijalanin, biasanya kalo ada yang nambah AC, crowd jadi heboh terus ngomong wow :O

Sementara itu, aku cuma merhatiin berapa tim yang ngegusur tim kita, karena sekarang peringkat kita itu rank 10 dari 12 nasional (outside top 12). Yang kutau adalah tim nya Windi ngegusur kita, jadi pasti kita udah rank 11 dari 12. Artinya, cuma ada satu tim lagi yang boleh ngegusur kita, kalo kita mau dapat top 12 national. Pas resolver, ada tiga tim yang nambah AC dan jadi 5. Aku sempet takut karena aku mikir penalty kita udah gede banget buat yang AC 5. Turn out, dari tiga tim tadi (tim windi, tim UI lainnya, tim binus), tim binus dapet penalty lebih banyak dari kita (fiuh, untung gak AC 6). Jadinya kita ngepas top 12 national (gak termasuk top 12). Oke, aku pun ngomong, kalo misalnya penghargaan tahun lalu masih ada, kita dapet jaket (ICPC tahun lalu top 12 national dapat jaket). Skip forward, bronze medalist diumumin, silver medalist diumumin, gold medalist diumumin. Dari indo sendiri paling gede tim Supir Tayo dari UI, dapet silver medal. Ada 4 tim dari Indo yang berhasil masuk ke range top 12.

Pengumumannya kelar, aku kira jadinya yang top 12 national gak dapet, eh ternyata disebutin bahwa ada penghargaan buat top 12 national. Spontan langsung ngomong “YES” senang, terus maju ke depan buat terima jaket yang ada :”). Ini best run ICPC ku sejauh ini, seingatku rank di Singapur 2015 ancur parah, tahun 2016 rank 30an. Keseluruhan, kita dapet rank 25 ICPC Jakarta. Kayaknya emang bisa perform better, tapi ya ngechoke parah pas kompetisi belakangan ini lagi ngetrend di timku :”

national_bronze

National Bronze Winner, tim kita last rank di ambang gak dapet

Well, sehabis penutupan, kita foto per universitas, terus turun ke bawah buat makan. As usual sih, makanan di ICPC Jakarta itu selalu enak-enak. Kalau gak salah ingat, aku makan bakso malang, siomay, chicken steak, dan beberapa yang lain. Sehabis kelar makan, kita langsung mesen gocar buat menuju ke Pasar Senen, soalnya kereta kita balik jam 10 malam ke Jogja. (Kita gak ikut excursion karena rata-rata pada ada kelas di hari Senin, kecuali mas Sidiq yang tinggal skripsian doang). Pagi banget sekitar jam 6/7 kita sampai ke Jogja.

closing

Tim UGM di ICPC Jakarta 2018

Overall, aku sangat senang di regional Jakarta kali ini, most likely aku gak yakin bakal ikut ICPC tahun depan lagi (well, bisa jadi tetep ikut terakhir sih, but who knows?). Sekarang, tim kita tinggal bakal ikut satu regional lagi sebelum akhirnya bubar karena pensiun (mau fokus skripsian). Regional terakhirnya yaitu di Singapur nanti pas tanggal 12-14. Wish us luck ya. Seharusnya, aku bakal ngeblog juga kejadian di Singapur nanti. Thanks for reading~

About Josua Aditya Mustiko

KnightSaber77 ~

Posted on December 10, 2018, in Uncategorized. Bookmark the permalink. Leave a comment.

Leave a comment