Tuesday, March 5, 2013

ITB Senior Programming Contest 2012

Yap, lomba ini adalah lomba kami (Team Binus) yang terakhir di semester 3 ini. Dengan berakhirnya ITBPC tahun ini, maka berakhir juga musim lomba di Indonesia (Hadehhhhh). Oke perkenalan dulu. Univ Binus mengirimkan beberapa team untuk bertanding di ITBPC tahun ini. Namun dari hasil babak pernyisihan, maka hanya ada 3 yang lolos ke babak Onsite Final #1 Sangkakala (Saya, Jenifer, Alvin), #2 Pandawa (Reinhart, Daniel, Teddy), dan #3 Hore (Adit, Calvin, Ron).

Babak penyisihan cuman saya sama alvin yang mengerjakan karena jensan ada kuliah di jakarta. Tapi dia ikut  gabung beberapa menit sebelum selesai. Babak penyisihan bisa dibilang sedikit berantakan, dari soal yang kurang jelas, adanya kesalahan test case sampai pending submission yang gak berenti berenti. Ada 5 soal namun team kami AC 3 yang membuat kita lolos ke babak final.

  1. Diberikan A sama B, cetak A / B sama A % B. Saya langsung ngoding yang ini, tapi karena A sama B bisa < 0 tapi hasil A % B harus positif, kita sempat salah sekali. Tapi akhirnya AC.
  2. diberikan matriks N * M dinomori dari 1 - (N * M) dari kiri atas sampai kanan bawah, kita dimulai dari baris nomor 1 ke baris nomor N dan harus gerak ke (i + 1, j + 1), (i + 1, j), (i + 1, j - 1). Score kita didapatkan dari total penjumlahan lantai. Lalu ditanya apakah bisa mendapat nilai X jika dimulai dari (1, X). Cara kita cari sum minim dan sum maks kalau mulai dari (1, X). Kalau yang dicari ada diantara itu, berarti bisa. Selain itu tidak bisa . Kayaknya cari minimumnya deh, tapi yah sama aja :P.
  3. GanCar, Soal paling bermasalah di babak penyisihan. Normalnya GLBB biasa tapi ada trickynya sebenarnya yang kurang jelas dari deskripsi soal. Tapi yah akhirnya AC.
Akhirnya kita lolos ke final beserta 2 team dari Binus. Singkatnya kita sampai di ITB pake mobil (Bukan Bus) Binus >.< . Setelah sampai kita langsung istirahat di puri tomat kalau gak salah. Malam sebelum hari Final, kita makan di tempat makan Kambing Soen. Kita awalnya pesan nasgor biasa, namun reinhart pesan Nasgor gila. Pas dateng ternyata porsinya gak pake otak. Banyak parah gila, yah kayak porsi buat 5 orang O_O. Setelah selesai makan kita menghabiskan malam menonton Lion King 1 :) (Best Momment before fighting ^_^).

Saatnya final :). Setelah kita sampai di ITB dan pendaftaran ulang, Kita lalu masuk ke aula untuk briefing lomba. Total kalau tidak salah ada 34 Team se-Indonesia. Team saya ternyata satu ruangan bersama team Hore, sedangkan Pandawa berpisah. Waktu sampai ruangan, babak pemanasan pun dimulai. Disini sepertinnya team kami yang paling nakal. Kami mengganti password account kami, tapi kami lupa passwordnya yang harus lapor =)), lalu coba print print gak penting ampe dibilang "Boros banget sih" =)) (Yah maaf panitia ITBPC, kami hanya iseng :D ). Setelah babak pemanasan, Final pun dimulai. Total ada 9 soal *Soal berdasarkan urutan problem, bukan dari yang kami solve duluan :
  1. Berhitung 2 : Cara kami, seperti penjumlahan bit biasa, jika bit ke N berubah dari 0 ke 1, maka overfow. Alvin dapet caranya dan saya yang ngoding.
  2. Encryption : Cara kami, set string yang isinya kelipatan "bcdefghijklmnopqrstuvwxyz" sampai tidak lebih dari 100.000. Lalu untuk mengisi chipertext, gunakan huruf 'a' sesuai plaintext. Soal ini gagal saya AC-kan di 4 jam pertama untuk balon. Setelah jensan bilang cara yang lebih "Greedy", gw coding secepat kilat. AC di freeze time.
  3. Pokemon : Saya tadinya mikir DP, tapi ternyata memorinya gak cukup. Alhasil coba mikir Bottom Up biar memorinya jadi O(1). Tapi gak dapet, jensan yang ACin soal ini. Saya sama alvin gak tau caranya gimana :)).
  4. Scheduling Trams : Soal yang berhasil membuat kita juara harapan. Soal ini baru kita sentuh, 30 menit sebelum akhir kontes. Kita gak tau caranya gimana, dari yang mikir caranya yang aneh aneh, harus dibuat tree lah, ilangin cycle, bla bla bla. saya sama jensan sampai 'tungkerep' di lantai, alvin sampai bingung di depan komputer. Akhirnya sya mikir greedy yang gak tau proofnya apa. Saya coding secepat kilat, alhasil 10 menitan sebelum selesai, kita berhasil AC.
  5. Bangjo : Saya yang coding, pertama kali AC juga buat team kita. 6 Menit :). Gak susah, cuma simulasiin aja. Cari tiap segment cocok dengan berapa digit. Kaliin aja terus di mod.
  6. Pizza : Ini alvin sama jensan yang solve. Saya gak tau apa apa :)), iseng denger si jensan udah kepikiran terus si alvin yang coding pake Binary Indexed Tree.
  7. *Paper Fold* : Ini soal favorite saya sama alvin =)). Gimana gak, kami ribut sendiri, ketawa ketawa sendiri, sampe bener bener lipet kertas robek kertas, nyampah di komputer kami (Maaf lagi yah kakak panitia :P ). Alvin yang nemu patternnya, pas saya coding ternyata ad-hoc males banget copas copas code :)).
Yak kami berhasil solve 7. Pada saat babak final berlangsung, ada beberapa fakta yang gak penting tapi worth to know (Or maybe not :P ). :
  1. Sebelum freeze, kita sempat rank 2 :P
  2. Waktu ngerjain soal, kita sempat pose untuk di foto sama kakak panitia
  3. Ada alarm handphone yang deringnya sama kayak punya saya. Alhasil saya yang panik dan ternyata bukan punya saya :))
  4. Kita dikatain boros waktu print code. Lembar 1 full code, lembar 2 cuman keisi satu karakter '}'
  5. Saya gak keluar untuk makan selama kontest ataupun untuk ke WC =)).
  6. Jensan yang paling sering keluar di team kami =)).
  7. Awalnya soal ada 11, ternyata kecampur sama soal babak pemanasan. Pas kita submit ternyata masuk ke soal final, setelah protes, penaltinya ilang.
  8. Soal pizza diminta untuk tidak dikerjakan dulu karena ada yang akan berubah. Tapi Pandawa AC duluan. Pas ditanya, dia gak tau ada kllarifikasi itu =))
  9. Ada perubahan soal pada Scheduling Trams, tapi pas kita kerjain di menit menit akhir, kita gak tau apa yang berubah.
  10. Di score board banyak team yang solvenya 6 - 7, yang artinya banyak balon. Tapi di room kami balonnya sepi :)).
Setelah selesai babak final dan makan siang, kita dibawa ke aula untuk acara penutupan. Pertama ada pembicara dari Teelu, Teddy ketawa, Daniel ketawa, I know what they mean hahaha =)). Pas pengumuman ternyata team kami juara harapan 2 :). Senang karena ternyata 5 team juga yang solve 7, jadi agak tipis juga. Pandawa mendapat juara 2, dan team Hore kurang beruntung :(.

Demikian akhir dari musim lomba tahun 2012 - 2013 :)). Semoga di musim lomba mendatang, hasilnya bisa lebih baik lagi dari yang lalu ^_^ Semangat semangat. . .

NB: Untuk foto, soal dan ranklist / scoreboard akan diupdate segera.