Jumat, 11 Desember 2015

ACM - ICPC Regional Singapore - Daily Logs(?) Bagian 3

Karena tadi malam terlalu capek, tulisan ini jadi kena delay huehue

Day 3 - Contest Proper

Alhamdulillah, pagi saya bisa bangun tepat waktu, walaupun tetap merasa ngantuk (entah kenapa saya gak pernah bisa segar pas bangun). Setelah sholat dan bangunin orang buat sholat, saya santai-santai saja, internetan, download anime, sama tentunya mandi. Setelah tiba waktunya, kami bersiap-siap untuk pergi ke SoC. Di jalan ngobrol-ngobrol sama mas-mas UGM (Josua sama Lantang), yang sampai bela-belain beli keyboard, dan karena gak mau rugi jadinya beli keyboard gaming :')

Sesampainya di SoC, disediain breakfast buat semua tim. Hanya saja, stoknya sedikit, jadi seandainya kami datang lebih telat dikit, bisa aja gak dapet makan.

Suasana sarapan

Saya ngobrol sama mas-mas NTU (timnya Kevin), mostly tentang live expenses di Singapore. Setelah selesai makan, tim UI ada ngumpul bentar, terus jalan ke lantai 2, tepat di luar ruang kontes.

Kami ngobrol-ngobrol santai dulu, terus sesaat sebelum masuk, dipanggil buat foto per-negara.

Credits : Pak Auzi
Kami lalu masuk ke ruang kontes. Kesepakatan sebelum kontes, seperti biasa Anthony baca A-C, saya D-G, Agus H-K. Awalnya, Anthony yang diposisikan first coder. Tapi, 30 detik terakhir, entah ada angin apa, saya minta tuker. Jadinya saya yang jadi first coder. Lalu, kontes dimulai!

Saya baca dari soal D. Math. Skip. Baca soal E. N <= 13 ? Tapi simulasi + greedy biasa. Saya langsung kerjain cepat-cepat. Alhamdulillah, gak banyak ngebug. Begonya, pas mau compile, saya gak tau ini terminal lagi di mana, dan saya ngesave di mana. Jadinya sekitar semenit panik sendiri sambil dibantu Anthony. Pas udah benerin untuk terakhir kalinya, submit, dan E - Association for Computing Machinery AC!

Fun fact : Saya kira itu soal D, jadi nama filenya D.cpp :')
Hore fact : Kami first AC soal itu!

Setelah itu, saya liat scoreboard dan liat soal F banyak yang AC. Saya lalu baca soal F, dan ternyata hanya greedy biasa. Langsung saja saya code, dan agak ngebug, tapi untungnya F - Air Conditioned Minions AC!

Setelah itu, saya baca soal G. Anthony sama Agus lagi diskusi soal itu, tapi entah kenapa saya pikir digreedy aja bisa. Pas submit, WA. Terus dibilangin kalau emang gak bisa digreedy. Saya langsung mikir DP, yang awalnya O(N^3), tapi untungnya bisa dibikin jadi O(N^2). Saya lalu coding dan mikir sambil jalan, begitu sample AC langsung submit. TLE.

Bingung kenapa TLE, saya lalu baca code saya lagi. Bego, variabel iterator yang reduce kompleksitas dibikin di tempat yang salah. Setelah pindahin inisialisasinya, submit lagi, dan G - Association for the Country of Mububa AC!

Setelah itu, saya baca soal di belakang-belakang dan liat soal J soal tree. Hanya saja, saya gak yakin 100 * Q * log N cukup apa nggak, jadinya saya cari soal lain. Liat soal I, math, dan rasanya agak ribet jadinya gak berani saya sentuh dulu. Liat soal K, geometri sinting.

Terus, Anthony jelasin soal D sama C. Soal D intinya dikasih K yang gede, pilih A sehingga A + K / A seminimal mungkin. Yang C intinya simulasi yang bisa dibantu pake DSU. Jadinya saya coding soal C, dan entah kenapa karena paranoid padahal stack size gede, saya bikin findParent() di DSU jadi iteratif. Kemudian, C - Association for Control Over Minds AC!

Saya lalu nyoba bikin soal D, terus ada diskusi tentang soal J. Kata Anthony sama Agus 100 * Q * log N masih cukup aman. Yasudah saya coding, sudah cukup sering ketemu soal query subtree begini. Submit, RTE. Wut?

Karena Agus dapet solusi soal H, saya lalu print solusi J dan baca soal lagi. Waktu printnya belum dapat, saya baru nyadar saya salah baca soal : Saya ketuker makna K sama X di update node. Buru-buru ganti 3 line di solusi saya, lalu submit lagi. Saya sudah cukup optimis, dan J - Association of Cats and Magical Lights AC!

Selama Agus ngoding, entah kenapa saya mikir D bisa di maxflow, tapi gak bisa bikin graphnya. Jadinya saya bikin lemma-lemma gak jelas dari constraint. Sementara itu, H-nya Agus ngebug. Jadinya kami nyoba debug dulu sebelum fokus ke yang lain.  Setelah debug-debug sama checking, kami submit H, lalu H - Association for Convex Main Office AC!

Pada saat ini kami bingung mau ngapain. Saya coba submit Brute force di D, lalu dapet WA dan TLE. Setelah TLE, saya baru nyadar kompleksitasnya O(divisors) yang udah dibilang bisa sampe 10^10 --" Udah mabok. Jadinya saya dan Anthony diskusi soal A, sementara Agus coba soal I. Agus selesai duluan, jadinya dia mulai implement soal I. Lalu, saya dan Anthony dapat solusi soal A, yang berhubungan sama cycle finding dan partisi. Yakin codingannya lebih cepet, saya minta saya code soal A dulu.

Saya lalu code soal A, dan sialnya udah lambat, ngebug. Setelah beberapa menit perjuangan, akhirnya A - Association for Cool Machineries (Part 1) AC! At this moment saya baru nyadar udah freeze time.

Agus lalu takeover untuk coding soal I, sementara saya pergi ke WC. Balik-balik, saya coba mikir untuk soal D dan B. Akan tetapi, rasanya kepala udah berat sekali, saya sulit untuk mikir jernih. Sementara itu, Agus baru nyadar solusi I-nya belum sempurna. Masih ada kasus-kasus yang harus dihandle. Jadinya dia tambah-tambahin codingannya, tapi sample masih belum lolos. Menit ke-299, Agus submit tanpa ngecek sample (kami udah kepepet), namun sialnya WA. Pas dicek, ternyata sample 2 juga udah gak lolos :P

Jadi hasil akhirnya, kami solve 7. Tanya AFP, mereka solve 5, dan pas ngobrol baru nyadar kalau J pake 100 * Q * log N itu bakal BERAT banget. Jadi penasaran kenapa AC :O Terus diapproach Steven Halim, dibawain balon banyak yang warna soal E, katanya dikasih untuk tim yang first solve soal itu. Yey dapet banyak balon :)) Steven Halim juga bilang Agus untuk interview NUS-nya sekarang.

Habis itu, kami ambil barang dan saya, Arbit,  dan Fractal sholat. Habis balik, kami lalu makan siang. Makan siangnya juga lumayan enak :P Saya lalu ngobrol sama timnya Kevin, dan katanya mereka AC 6. Coachnya lalu datang, dan bilang kalau solusi soal J bisa Q * log N saja, pakai 2 BIT long long. Saya baru nyadar kalau bisa kayak begitu :/

Habis makan, kami lalu balik ke luar ruang kontes. Steven Halim terus ngajak orang-orang yang di situ untuk ngeliat ICPC labnya. Di dalam, ada Rais sama Ano yang "kejebak".

Di ruang kontes keliatan juri sama RCD lagi beres-beres ruang kontesnya. Kami juga masuk, nyopotin balon sama main-main. Terus, Aldi ngeliat cheatsheet tim di sebelah mereka yang jago, terus ngambil. Steven Halim terus bagi-bagi "sembako", yaitu pensil sisa, sama snack sisa.
"It's a proof that i don't take anything" - Steven Halim
Setelah ngeliatin beberapa orang mainan ubah suara pakai helium, kami mobilisasi ke Stephen Riady Center buat penutupan. Sesampainya di sana, ternyata penutupannya masih 1 jam lagi --" Jadinya kami liat-liat makanan lagi. Setelah itu, kami naruh tas di hall penutupan lagi. Disamperin orang Garena (Harta kalau gak salah?) intinya diceritain tentang Garena (yalah).  Oiya, saya juga disamperin Steven Halim buat dikasih extra T-shirt karena ngeblog, saya dapet warna coach >:) Setelah itu ditawarin Steven (LO kami) nyari es krim, dan saya jadi semangat. Hanya saja, pas udah sampe tempatnya tutup. Taik.

Untungnya masih ada tempat makan deket hall penutupan yang buka. Kami jadinya makan di situ. Beberapa makan waffle, terus jamur yang entah dimasak pake cara apa tapi jadinya enak. Saya makan sampai agak eneg, dan habis itu balik ke hall.

Pas di hall, ada prizes dipajang. Sebelum kami cabut dari hall sebelumnya, udah ada Steven Halim persilahkan buat foto-foto, sambil diwarning - "Do not touch anything". Karena belum ambil foto, yaudah foto aja
Bikin ngiler
Macbook Air

Wow so thin

Pas di hall, penutupannya masih sekitar setengah jam. Awalnya, saya, Agus, Arbit, sama Fractal main Badlands. Habis itu ditawarin Pak Denny main apaa gitu pake HP-nya . Karena capek, saya mau tidur. Hanya saja, saya gak bisa tidur. Yang terjadi malah :
Team member tewas,
Coachnya juga
 Habis itu, acara penutupan dimulai! Saya niatnya mau tidur kalau ada presentasi sponsor dulu, tapi ternyata debriefing soal kontes dulu. Karena benar-benar tertarik beberapa soal, saya jadinya melek lagi buat ngeliatin.
Thanks Java!
Apple? :v

Solusi juri buat B

Well fuk
Sejujurnya, saya agak shock ngeliat solusi soal K yang mengharuskan baca paper. Tapi, saya juga terharu ngeliat solusi soal B juri yang benar-benar licik :') Selain itu, yang bawain debriefing juga agak lucu, berkali-kali bilang "try this at home"

Selesai debriefing, ada presentasi dari IBM. Seperti saya katakan sebelumnya, saya berniat tidur. Hanya saja, ternyata presentasinya menarik. Saya jadi melek lagi. Selain itu, presentasinya pendek :v Seandainya saja presentasi di Indonesia pas acara bisa seperti ini #eh

Setelah itu entah kenapa dibuka scoreboard yang layoutnya aneh. Saya perhatikan, untuk soal ada 4 jenis warna. Satu jelas gak diattempt. Satu jelas AC. Satu jelas gak AC. Satunya lagi saya mikir, ternyata yang disubmit pas frozen.

Steven Halim lalu jalanin. Ternyata, yang disubmit pas frozen, seandainya AC, warnanya bakal ijo dan tim yang bersangkutan bakal melambung ke atas di scoreboard itu. Wah, pengumumannya jadi seru abis :') Untuk tim saya sendiri, saya agak optimis kalau bisa top 10, hanya saja untuk di area PP mungkin gak terlalu bagus, karena kata Anthony timnya Rais nambah AC di jam terakhir.

Selain ngeliat tim melambung-lambung, seandainya suatu tim gak nambah "lambungan" dan first solve sesuatu, update bakal berhenti dan dikasih hadiahnya.

Setelah lambung-melambung, tim kami naik ke posisi 5. Saya harap-harap cemas, at least pengen top 5. Hanya saja, ternyata Zillions nambah AC, jadinya mereka di atas kami, menggusur kami ke rank 6. Timnya Rais jadi rank 4, dan dapet hadiah Lenovo. Tim saya ngobrol, bagaimana soal I bisa memisahkan kami dengan laptop baru :'))

Memasuki top 3, RRwatameda cuma nambah soal A. Tersisa tim Opportunity dan tim bcw0x1bd2. Pas ditanya dari panggung, satu member bcw0x1bd2 nunjuk temennya yang duduk di sebelahnya, dan bilang "He just solved problem K, but not in the contest", yang berarti tim Opportunity memenangkan ICPC Singapore 2015! Congrats!

At least dapet sesuatu :')
Credits : Pak Denny
Yang dapet at least 1 prize
Credits : Pak Denny

Final top 10
Setelah itu, kami keluar untuk disuguhi makanan yang enak-enak. Saya makan sambil ngobrol sama orang-orang UI dan ngeliatin sekelompok orang latian kayak akrobatik. Pas ngobrol sama Pak Denny, cuma bilangin kemungkinan kami ke WF cukup tinggi, sama disuruh latihan pas liburan. Saya sendiri ceritain masalah saya, yaitu susah konsentrasi sama kepala terasa berat semakin lama kontes berjalan. Masalah ini mau gak mau harus saya selesaikan secepatnya.

Sambil refill, saya ngeliatin sekelompok orang yang bikin performance, main musik. Saya juga ngobrol-ngobrol sama timnya Kevin, h1n4. Habis refill, balik lagi ke tempat orang-orang UI, dan setelah itu balik ke tempat makanan lagi.

Pas balik lagi, ketemu Steven Halim, dan dikasih powerbank yang ceritanya buat soal K. Katanya, dia udah expect kalau K gak ada yang ngesolve, jadinya powerbank  soal itu udah disiapin buat "best blog" :')) Selain itu, saya juga nagih CP3, untung dikasih :v Sama dibilang untuk terus ngeblog, supaya nanti di masa depan bisa liat ke belakang apa saja yang pernah saya lalui :')

Setelah jam 9, kami lalu ngumpul buat balik ke Sheares Hall. Karena besoknya cuma excursion, saya santai-santai saja begadang. Entah kenapa, Fractal nangkring di kamar saya. Menjelang tengah malam, Fractal balik, dan saya masih internetan sebentar sampai akhirnya tumbang. Btw:
Harta rampasan perang hari ini :')

Sekian dulu, bagian terakhir mungkin bakal gak terlalu banyak isinya :') byee~








1 komentar: