Nov 082011
 

Udah ada beberapa orang yang minta blog pembahasan soal ACM-ICPC INC 2011 yang barusan, tapi apa daya gw lagi ada kerjaan dan belum bisa buat. Paling cepat minggu depan, tapi kemungkinan besar masih dua-tiga minggu lagi setelah BNPC-HS 2011. Lagian gw juga harus nunggu Risan yang janji mau nulis pembahasan soal J (Messy Query) punya dia yang sepertinya memerlukan beberapa analisis yang cukup kompleks, dan Risan sendiri saat ini masih sibuk di Bandung untuk keperluan Pelatnas 1 TOKI dan minggu ini dia akan ke Kuala Lumpur untuk ACM-ICPC. Ya… ini emang bulan-bulan sibuk.

Lah terus ini post tentang apa? Di sini gw cuma mau post tentang cerita tentang pengalaman atau kejadian-kejadian unik yang gw alamin di INC kemarin aja. Mumpung masih segar dalam ingatan, kalau nunggu bulan depan udah keburu lupa. Nulis post ini cuma perlu waktu sekitar 1 jam (kalau pembahasan bisa satu hari). Tenang aja, pembahasan pasti dibuat, cuma ya minggu-minggu depan…

INC 2011 adalah INC pertama gw dimana gw nggak di Jakarta, ho oh, seperti yang pak Freddy bilang di penutupan INC yang lalu, gw lagi di Singapore. Jadi banyak urusan gw di INC yang dikerjain ama Eko dan Timo, sekalian mereka belajar mana tau tahun depan bisa gw tinggal jadi gw cuma ngeset soal doank (tapi kayanya sih belum bisa).

Gw balik Jakarta dari Kamis malam, tiga hari sebelum INC, karena gw juga mau sekalian perpanjang KTP. Kalau Sabtu/Minggu kayanya kelurahan tutup sedangkan Senin gw harus ke Bandung buat Pelantas 1 TOKI, jadi mau ga mau deh. Tapi ternyata perpanjang KTP hari Jumat kemarin itu adalah kesalahan besar, komputer di kelurahannya rusak x( sia-sia gw datang dari pagi jam 9 dan nungguin mereka benerin satu hari yang akhirnya bilang “kayanya lama nih baru bener, ntar sore jam 4 baru balik ya”. Karena jam 5:30 gw ada janji mau ketemuan Fiona, yo wes tinggal, lupakan KTP.

Preparation

Satu hari sebelum INC (Sabtu) biasanya gw dan beberapa juri lain ngecek kesiapan sistem di ruang kontes (lab) sekaligus ngecek time-limit tiap soal di komputer kontes. Gw ga inget tahun-tahun sebelumnya gimana, tapi gw baru diingetin kalo ternyata praktikum mahasiswa masih berjalan jadi kita ga bisa pake ruang lab (doh!) siang hari. Padahal plan gw, pagi/siang beresin sistem INC, sore/malam kencan. Solusi: berdayakan Eko. Gw minta dia yang ngecek sistem dan tes time-limit sore-sore di lab.

Sabtu pagi gw ke BINUS, tepatnya ke Multiplus seberang kampus Anggrek, buat ngeprint dan fotokopi soal untuk practice session. Karena soal-soal ini telat masuk ke penggandaan (emang baru selesai disiapin Kamis/Jumat) jadi gw bilang ke Muhsin kalo gw yang akan kopi sendiri. Sebelum ke Multiplus gw ketemu Ricat di tengah jalan, dia mau kuliah kayanya. Pas nyampe Multiplus gw baru tahu… ternyata Multiplus seberang Anggrek udah bangkrut, gw buka pintunya, cuma ada batu-batu dan sampah 😐 Haiyah, ya sudah, pindah ke fotokopi Daya, yang untungnya bisa ngeprint juga (sebelumnya gw taunya dia cuma bisa fotokopi aja).

Selesai fotokopi soal practice, gw mampir makan di Petojo (rumah makan Petojo sebelah Daya) dan pesan menu gw yang “biasa”: nasi putih + mie goreng. Selesai makan, gw ke ATM bentar di kampus, baru balik dari SG blum ngambil duit, pas nyeberang balik mo nyari taksi… gw ketemu rombongan 3 orang aneh yang manggil gw dan terus nyengir-nyengir: Eko, Winardi, Albert. Eko ngomel-ngomel protes bilang katanya gw ga bisa dateng mo pergi kencan, ya emang ga bisa, itu udah saatnya pergi, kan yang gw bilang ga bisa itu sore/malam 😀 Selamat bekerja ya…

Malam sebelum INC kali ini ternyata gw masih beresin soal, tepatnya soal C punya Ilham. Sampe beberapa hari menjelang final, Ilham belum berhasil menyelesaikan codenya yang O(N^2 lg N), katanya ada masalah di implementasi salah satu bagian algonya. Untung udah bikin backup plan dengan menurunkan N di soal jadi 500 (sebelumnya 1000) dan siapin solusi O(N^3 lg N). Masalah di soal ini bukan cuma solusinya, tapi gimana cara generate testcasenya?? Random graph tentu ga akan bisa karena outputnya kemungkinan besar NO. Alhasil Risan dan Ilham akhirnya berhasil bikin generator graph buat soal ini. Ilham udah disain 40 jenis testcase, tapi karena dirasa masih kurang, ya udah ditambah 20 case lagi dari generator Risan (makanya soal C ada ralat soal T jadi 60). Yah, selesai beresin soal C udah jam 3:30 dan gw harus bangun jam 5:30, masih ada dua jam, mari tidur… sialnya gw udah guling-gulingan 1 jam masih ga bisa tidur! ya uda deh, ga usah tidur sekalian >.<

D-Day

Minggu pagi gw sampe ke lab jam 7:30, ternyata Aditya (ketua INC) udah mulai briefing ke anak-anak panitia yang lain. Gw langsung setup admin PC2 di lab, set user/pass dan upload semua data buat keperluan practice session. Kali ini kita pakenya PC2 versi 9.2 yang masih beta, soalnya 9.2 bisa ngubah output limit (ada satu soal rese yang outputnya >4M), sambil berharap gak ada masalah serius di 9.2. Kata Eko waktu itu dia pake pas penyisihan sih ga ada masalah.

Jam 8 peserta mulai datang (sebenarnya cuma 1 peserta aneh yang berencana kerja jadi cleaning service yang datang sebelum/tepat 8:00) dan registrasi ulang. Gw udah titipin ke yang jaga registrasi buat kumpulin team notebook peserta. Sekitar jam 8 lewat gw mendengar kabar yang super duper luar biasa mengejutkan: soal final terkunci di ruang akademis Syahdan. Udah gitu Building Management (BM) yang bisa dimintain buka ruang lagi ga ada katanya (nice). Di masa-masa panik gini si Ceemot minta gw print dan kopi ulang, masih ada dua jam harusnya sempat. Haih, ya wes, gw seret Eko dan ajak dia turun ke lantai 1 trus ke tempat fotokopi yang entah mana yang buka di hari Minggu. Pas di lantai 1 sebelum keluar dari gedung Anggrek, gw ngeliat protekom… tiba-tiba timbul ide, kenapa ga tanya mereka aja? Setelah tanya mereka, kita dialihkan ke basement tempat orang BM nongkrong soalnya katanya orangnya ada (lho). Lampu ruangnya sih nyala, tapi dikunci, ternyata orang yang jaga lagi makan, ya uda gw dikasi nomor hp si BM. Setelah gw telpon, ternyata dia juga udah ditelpon sama salah satu panitia, dan masalah udah beres. Beres? hmm… lega, tapi koq gw ga ditelpon/sms Ceemot buat cancel fotokopinya yah x( grrr…

Balik ke lantai 8 ngider-ngider sampai acara pembukaan di mulai. Gw bertugas ngasi technical briefing ke peserta pas pembukaan. Supaya lancar tentunya gw udah siapin slide buat mengcover apa aja yang mau gw sampein (meskipun pada akhirnya ada beberapa poin kecil yg kelupaan). Banyak pertanyaan dari peserta… ralat, banyak pertanyaan dari salah satu peserta (yang suka ngaku ganteng), pertanyaannya macam-macam dari yang normal sampai ga normal. Di sini gw juga sempat perkenalin beberapa problem setter, awalnya sih gw cuma mau mereka berdiri di tempat biar keliatan yang mana, tapi pak Freddy di depan gw bilang: “suruh maju aja su”. Yo wes >:) huahahaha, jangan salahkan saya kalian jadi panjangan 🙂

Selesai briefing, gw ama juri-juri lain buru-buru ke ruang kontes peserta dan ngecek team notebook mereka, karena ternyata team notebook udah ditaro di meja masing-masing peserta, padahal belum dicek. Gak ada yang notebooknya bermasalah kecuali satu tim, dari BINUS :-|, ya itu tim punya peserta aneh yang pengen jadi cleaning service tadi. Mereka ngasi dua tim notebook yang isinya beda sama sekali, jadi total 50 halaman 😐

Gak lama kemudian peserta mulai masuk ke ruang kontes, gw sendiri buru-buru ke ruang juri dan start practice sessionnya. Beberapa masalah timbul pas practice session, sebagian besar berkaitan dengan printing. Ya karena gw ga ngerti ya gw serahkan aja ke aslab yang ngerti masalahnya di mana. Untuk printing sendiri, di babak practice session hasil print hanya diperlihatkan ke peserta tapi ga dikasi (ditarik lagi), supaya ga disimpan sebelum babak final.

Crash

10:30 practice session selesai, gw minta Surya reset server PC2 dan gw mulai siapin data buat babak final. Sebenarnya gw agak khawatir dengan babak final, soalnya total size testcase itu ~50M, gw udah wanti-wanti ke Eko (selaku pemilik salah satu soal yang inputnya gede) kalo hal ini bisa jadi masalah. Soalnya pas 2008 juga pernah kejadian model gini, PC2 nya berlaku aneh, dan akhirnya ketauan karena heap size PC2 nya kurang gede buat handle data banyak, tapi waktu itu juga ga sampe segini banyaknya. Selesai upload semua data, setting ini itu, juri udah ada yang mulai login, si Surya mau aktifin scoreboard PC2 nya. NAH! kejadian juga kan, server PC2 tiba-tiba crash, out of memory >.< Kata si Eko dia udah gedein heap size JVM buat PC2 sampe 1G, ya gw bilang kurang. Tapi ternyata memory di server cuma 2G :-o, What?? Gawat, kalo digedein lagi servernya yang jadi matek ga punya memory. Ya udah coba gedein jadi 1.5G dulu dan liat apa yang terjadi, meanwhile gw ke ruang kontes dan umumin kalo kontes diundur. Musti gw umumin, soalnya aba-aba start contestnya pake timer yang ditampilkan pake proyektor infokus, jadi mereka bakal mulai sendiri kalo timernya abis. Setelah diset jadi 1.5G, gw upload ulang semua datanya, dan minta semua juri login, memori yang kepake udah 1G, padahal peserta belum login dan kontes belum jalan. Kemudian gw minta semua peserta login dulu, buat ngecek pemakaian memori nya di server, ternyata jadi > 1.2G. ughh… 😐 tinggal 300M sisanya, dan gw gak tau behaviour server PC2 kalo kontes lagi jalan >.< Gak berani ambil resiko, kalo servernya crash di tengah kontes bakal repot. Ya udah akhirnya diambil keputusan, beberapa soal yang inputnya gede dipisah, ga diupload di server PC2, karena kebetulan soal-soal yang inputnya gede itu bukan soal gampang, jadi submissionnya bakal dikit. Trus judge soal input gede itu gimana? Kita bikin satu server PC2 bayangan lagi pake komputer lab, dan submission untuk soal-soal itu akan disubmit ulang ke server bayangan ini, jadi bebannya dibagi gitu. Kalaupun server bayangan crash, ga masalah, tinggal restart ulang (gak mempengaruhi jalannya kontes). Alhasil server PC2 yang buat kontes cuma makan sekitar 300M (ya iya lah), woh... lega, kontes mulai!!

Contest Begins!

5 menit pertama, belum ada submission… *sunyi senyap*, padahal tahun-tahun sebelumnya juri diserbu di awal-awal kontes dari soal bonusnya. Hehehe, gw emang akui tingkat kesulitan soal final tahun ini lebih tinggi dari tahun sebelumnya, termasuk soal bonusnya. Terutama soal bonus kali ini emang sengaja dipilih yang emang gampang, tapi codingnya nggak 1-2 menit. Untuk soal bonusnya malah gw udah kasi “bocoran” pas briefing, jadi sebenarnya bisa skip langsung baca input-output dan coding 😛

Submission pertama datang dari Saklar Lhompat (UI) untuk soal B di menit 11, yang tentunya AC. Submission kedua dari Apis Volan (BINUS) juga untuk soal B di menit 13. Gak lama kemudian satu per satu tim mulai mengirim submission, tapi ritmenya lambat banget, kalau gw perhatiin rata-ratanya 1.5 submission per menit. Dongskar (ITB) gimana? mereka ternyata ngehajar soal H duluan, yang adalah soal termudah kedua, baru sehabis itu mereka babat soal B. Setelah satu jam berlalu, peringkat satu (kalau ga salah) diraih sementara oleh Vidina (UI) dengan jumlah solve 3, kalo di ICPC Jakarta tahun-tahun lalu satu jam udah 5-6 soal :P. Vidina lumayan juga, karena setau gw anggotanya itu anak-anak semester baru semua.

Mendekati 1.5 jam, Dongskar submit soal E sebagai soal ketiga mereka, dan AC! Ruang juri langsung rame, soalnya E itu bukan soal yang termasuk bonus atopun medium. Buka source codenya, ga ngerti dia coding apa, close lagi. Ternyata tingkah laku Dongskar yang AC di soal E ini membuat beberapa tim “tertipu” ikut-ikutan ngerjain soal E. Sempat gw perhatiin di scoreboard, untuk soal E 6 tim di bawah Dongskar semuanya merah-merah, cuma ijo sendiri di paling atas. Gw bilang “tertipu” karena banyak soal lain yang lebih solvable daripada soal E, seperti soal A, F dan I.

Lewat 1.5 jam (kira-kira) belum banyak perubahan dan gw mulai ngantuk, maklum dua hari berturut-turut tidurnya kurang banget, terutama hari sebelumnya ga tidur. Juri yang lain sepertinya bisa menangani kejadian-kejadian yang bakal muncul, jadi ya udah gw tidur bentar di ruang juri, dengan berbagai pose, yang diabadikan oleh Eko Buluk. Pas gw lagi tidur di kursi si Fiona dateng, akhirnya nyampe, dia abis gereja dan baru sempet ke BINUS. Ya gw bangun, dan *masih* ga banyak perubahan. Ada beberapa klarifikasi yang mostly ga penting (cuma ga baca soal dengan teliti). Gak lama kemudian gw menghilang selama satu jam, makan siang, si Eko sempat beberapa kali sms/nelpon karena ada klarifikasi, yang seperti gw bilang tadi, itu gara-gara ga baca soal dengan teliti.

Balik ke ruang juri, yang leading masih Dongskar dengan total solve 6, dan tim kedua solve cuma 3, gilak, dua kali lipat >.< Dongskar solve 6 sih udah gw antisipasi, tapi tim lain cuma solve 3 itu ga gw expect, apa mungkin gara-gara "tertipu" soal E tadi ya. Gak lama kemudian Saklar Lhompat menyusul AC juga di soal E setelah sebelumnya sempat fail satu kali, jadi mereka sementara di tempat kedua dengan solve 4. 1 jam menjelang akhir kontes, scoreboard freezed, balon stop. Apis Volan, tim unggulan dari BINUS baru solve 3! Muhsin (kepala lab computing) udah stress ngeliatin scoreboard :). Tapi dalam masa freeze ini, ternyata mereka melakukan sesuatu yang mengagetkan semua yang ada di ruang juri, mereka solve 3, soal E, I dan A! Si Muhsin dan Ceemot langsung girang joged-joged. Bipartite, tim kedua dari BINUS juga ternyata berhasil menyelesaikan soal F (yang emang menurut gw ga susah), dan berhasil naik ke rank 4. Saklar Lhompat dilain pihak, ga melakukan submission apa-apa selama 1 jam terakhir, katanya mereka ngebug di satu soal, entah bug apaan. Menjelang akhir kontes, juri tiba-tiba diserang dengan spam, terutama dari TePeBe (ITB) dan Vanaheimr (BINUS). Yang TePeBe emang submission ga jelas, sedangkan Vanaheimr kayaknya desperate submission (18 submission fail semua). Yang jadi problem adalah soal E itu judgenya di server bayangan, jadi juri yang ngejudge Vanaheimr itu rada kerepotan (belum selesai dijudge udah masuk submission baru untuk soal yang sama dari tim yang sama).

End

Kontes berakhir dan sesuai dugaan awal dimenangkan oleh Dongskar Pedongi (ITB) dengan solve 7, di tempat kedua adalah Apis Volan dengan solve 6, dan di tempat ketiga adalah Saklar Lhompat dengan solve 4. Pas di practice session gw sempat broadcast klarifikasi kalo sesi pembahasan setelah kontes ditiadakan. Ya jelas. 16:00 bubar kontes, 16:00 mulai pembahasan, gw belum lulus dari ujian ninja, belum bisa bunshin no jutsu. Selesai kontes, juri (terutama gw) belum bisa langsung keluar dari ruangan, karena perlu cek dan rekap beberapa data, jadi impossible gw bisa langsung ke hall begitu kontes selesai. Selain itu gw juga yakin abis bubaran kontes para peserta pasti masih ngobrol-ngobrol dan ngabisin snack yang ada, bakal susah disuruh naik ke hall.

Penutupan diawali dengan kata sambutan/penutup? dari pak Freddy, sehabis itu gw membacakan daftar pemenang, dimulai dari honorable mention (solve >= 2), rank 18 (solve >= 3) dan naik sampai ke rank 1. Di sertifikat peserta yang non 3 besar semua tertulis honorable mention, soalnya itu pre-printed sebelum kontes. Ga keburu kalo semua diprint ranknya setelah kontes. Mungkin bisa diusul untuk tahun depan sertifikat rank-nya dikirim aja ke univ yang bersangkutan.

Bubar acara, saatnya memalak yang dapet duit. Thanks buat Ricky dan Hudi atas traktirannya di Petojo 😀 Reinhart dilupakan…
Huahahahahahaha… 😀

  5 Responses to “ACM-ICPC INC 2011 – My Story”

  1. cerita yang menarik 😀

    Ralat:
    itu nama timnya Beepartite (bukan Bipartite :D)

    Terus itu Reinhart kasian, namanya ga disebutin dalam traktiran =)) =))

  2. “Thanks buat Ricky dan Hudi atas traktirannya di Petojo”
    woy2 gw dilupakan?? kecewa..!!!

  3. pak su story BNPCHS 2011 mana nih? :p

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)