Senin, 01 Mei 2017

TOKI Open Contest April 2017

Blog berdebu ya..

*Belum ngeblog ICPC sinting Yangon*
*Belum ngeblog banyak hal*
*Belum mikir soal CPC lagi*

Yah anyway, sekitar 3 minggu yang lalu ada TOC April Mop. Biasanya aku demen kontes ngawur kayak ginian, tapi kebetulan gak bisa ikut karena Sabtu pas kontesnya ke Jogja buat Vocomfest :" Tapi penasaran sama soalnya. Jadinya yaudah, nanya Ammar bisa jadi tester apa nggak, terus dibolehin :P

Tepat seminggu sebelum kontes Ammar ngajak pingpong di Pacil. Yowes, pingpong. Cuma aku baru main bentar aja udah capek :( Habis itu duduk-duduk. Daripada nganggur, aku bilang "mending ngetes TOC deh". Terus yaudah, habis gitu sambil Ammar masuk-masukin soalnya, aku ngetes.

WARNING!

Kalau masih pengen nyoba soalnya, sangat tidak dianjurkan membaca melewati peringatan ini.


Soal yang pertama Ammar masukin Genap Ganjil. Pas baca: "Ah ini RTE-nya pasti masalah underflow atau overflow". Terus aku pikir cin kalo baca input yang jebol bakalan overflow seperti layaknya overflow pas operasi aritmetika. Jadinya handling WA-nya dengan asumsi itu.

I HAVE NEVER BEEN SO WRONG

Wrong Answer terus mampus. Sampai akhirnya aku nyoba lihat behaviournya. Ternyata kalau overflow bakalan dibikin jadi INT_MAX, kalo underflow jadi kebalikannya. Cool stuff C++ :O Kira-kira 20 menitan buat ginian :s

Lanjutnya yang keluar Kuku Kuku Kaki Kaki Kakak Kakak Kakek Kakekku Kok Kaku Kaku. Gak butuh waktu lama untuk nyadar kalo query kata apa yang ngandung huruf k ke-k2.

Lanjutya soal L. Sebelum ngetes, Ammar ada nanya karakter di Death Note yang hurufnya satu doang. Yang kuinget N, terus gak inget Mello itu disingkat juga apa nggak. Terus keluar soal ini. Di soal kan deskripsinya bahasanya ngawur. Ngecek, oh, bahasa Romania. Habis translate, keluarnya cara pakai Death Note. Habis itu kirain ini kayak recon CTF, jadinya nyari "L 50 Death Note." Yang keluar malah beginian:


As you noticed, itu videonya kutonton bentar :" Terus aku nyoba-nyoba hurufnya, ternyata di testcase gak ada "N" :/ Baca tentang L, ada bilang beratnya 50 kg. Yakalik pake berat badan ~_~ Terus nyasar ke Aturan Death Note. Scroll, terus mikir:

"Ini aturan berapa ya?"
"LI, 51"
"...."
"goblok"

Baru nyadar kenapa deskripsinya pake bahasa Romania -_- habis gitu ngetes lagi AC.

Habis itu aku baca soal yang Jangan Jijik. Langsung eneg. Kukira karena tahun sebelumnya ada soal yang agak serius (pake hash gitu), jadinya sekarang ada soal serius lagi. Terus ku-skip, sambil bilang "jijik Mar"

Terus soal Haki!. Awalnya bingung gitu kenapa pake karakter yang gak biasa, terus aku takutnya kalo gak bisa dibaca pake C++ atau Pascal. Tapi ya belom kebayang solusinya, awalnya cuma mikir 4 itu ngeliat sample 4 ada 4 karakter  ░.

Terus Ammar ada soal, yang kami tes ternyata brute forcenya kegampangan. Daripada soal itu yang keluar, aku suggest kalo bikin soal yang harus liat verdict dari juri kalo mau ngerjain. Jadinya ya, soalnya jadi soal Impossible. Terus aku bingung gitu kenapa cuma boleh Pascal.

Ayaz: "Ini napa cuma boleh Pascal?"
Ammar: "Biar gak bisa isProbablePrime Java"
Cerdas kamu Mar.

Habis gitu balik ke Jangan Jijik, percakapannya:

Ayaz: "Ini kalo soal serius aku gak mau ngerjain deh"
Ammar: "Yaudah, coba aja kamu liat submissionku"

Terus aku liat submissionnya, cuma print sample doang.


Ammar terus nyuruh buat baca soal lebih teliti. Baru nyadar kalau ada kalimat "Oh ya, percobaan-percobaan tersebut dapat dilihat pada contoh masukan dan keluaran di bawah ini" --" Habis itu, dia bilang kalau sample itu contoh perpotongan yang bisa dia temuin di internet :") Pas aku ngetes soalnya, masih belum ada cek jawaban pake scorer. Terus aku bilang kalo scorer tetep perlu, yaudah terus ditambahin. Pengennya kemaren bikin statement itu semakin di tengah paragraf, tapi ternyata pas kontesnya juga gak ada yang dapet tanpa perlu begitu :") 

Balik ke soal Haki, aku nyoba ngitung karakter hitamnya. Ternyata ada pas 439 :O Habis gitu nyoba ke sample 2 juga gitu. Baru di sample 3 nggak. Ngeliat karakter abu-abunya. Oh, jadi kayak connected component terpisah gitu. Dari situ dapet kalau cari maksimum hitam di suatu connected component. Lama sih baru dapetnya. Habis gitu aku coba read karakter aneh itu, ternyata satu karakter itu jadi 3 integer :O Yang penting bisa dibaca deh.

Habis itu ngerjain soal Melantunkan Musik. Oh, kayak pantun. Palingan juga cuma nyari karakter terakhir yang munculnya ganjil kali. Eh bener ._. Habis gitu aku nyoba ngetes pake karakter selain huruf kecil. Masih AC. Jadinya minta benerin scorer hehe.

Terus untuk soal terakhir, Nyan Nyan Nyan belum siap, katanya Ammar karena TLX gak support gif. Yaudah, jadinya testingnya nanti dulu.

Habis gitu aku coba ngoding python buat Haki. Terus RTE. Anehnya baca input aja RTE :/ Terus aku lapor Ammar. Habis gitu, aku nyoba juga di soal L pake python. Kadang RTE kadang nggak ._. aneh pisan. Jadinya dicoba diinvestigasi.

Pas pulang, Ammar minta cari lagu wibu buat dipasang di sample. Yaudah aku coba cari. Pertama potongan lagunya Aqours, "Omoi yo Hitotsu ni Nare":

chikadzuitari hanaretari datta ne
umaku ikanakute zutto
tsutaerarenai koto ga atta yo
majime na kao shite

 Di-reject karena polanya "abba", Ammar maunya "abab" atau "aabb". Damn :( Habis gitu dapet potongan lagu dari Gurren Lagann, "Sora-iro Days":

Sugita kisetsu wo nageku hima ha nai
Nido to mayotte shimawanu you ni
Kazoekirenai hon no sasayaka na
Sonna koukai kakaeta mama

Terus karena animenya manly, disaranin cari lagi. Yasudah deh. Akhirnya dapet dari Aqours, potongan "Sky Journey":

yume kanaetai kara itsudemo
akiramenai koto ga daiji da to
naze honki de katareru no darou
yuuki ga tsutawareba daijoubu

Di-approve, pasang di sample terakhir. Tapi kayaknya gak ada yang sadar :P

Nah terus soal Nyan itu udah ada, tapi belom berjalan sesuai keinginan Ammar. Tapi yaudah, aku tetep nyoba. Descnya pas itu: "Find the lost cat first!". Ngeliat nama asset kucing-kucing itu via inspect element, mikir "paling nama filenya juga 404.gif". Ternyata ada. Hehe.

Berapa hari setelahnya, Ammar bilang Nyan udah siap. Sekarang descnya: "Find the lost compressed-cat first!". Yaudah, artinya 404.zip. Nah pas itu aku buka dari HP. Pas extract di HP, gif-nya gak jalan :( Habis itu aku buka laptop terus extract. Oh, gifnya jalan :P Tapi kayak gif biasa gitu. Sambil buka gifnya aku juga buka terminal, terus nyoba strings lah, binwalk lah, buka pake gedit lah, gak ada yang aneh. Terus tau-tau ada frame yang rasanya off. Jadinya aku buka https://ezgif.com/split, terus masukin gifnya. Dapet frame yang aneh itu



Heleh QR-Code. Buka QR scanner di HP, terus bacanya "open nyan.cat for 9001 seconds!". Enak aja. Jadinya cari terkait itu, terus ternyata ada achievementnya. Masukin achievementnya, AC. Niat juga ini. Terus ternyata 404.gif itu masih ada di soal, kata Ammar biar jadi "Red Herring", padahal karena TLX gak bisa delete, bisanya revert. Terus jadi penasaran, ini Ammar obsesi over 9000 atau apaan.

Terus dapet laporan kalo python-nya masih belom tau kenapa. Yaudah, jadi diskusi, enaknya bolehin pake python atau nggak. Ujung-ujungnya bolehin, tapi dikasih warning gede di announcement :v

Pas kontesnya aku masih ngadem di Amplas (Ini correct spelling singkatan Ambarukmo Plaza atau bukan?._.), terus minta Ammar kayak live commentary di chat. Sayang gak bisa ngikutin full :s Kayaknya menarik :s

Oh dan anyway, congrats untuk para pemenang! Selera humor kalian kayaknya kompatibel sama sejenis aku sama Ammar :P

Mungkin postnya ini dulu deh hehe, ngeblog lagi mungkin nanti pas liburan.

Pengen cepet libur :"(

Trivia yang tidak ada hubungannya dengan konten di atas:

  • Pas ngetes, Ammar iseng bikin kayak markdown gitu di chat FB. And holy shit it works!
  • Terus kami ngetes pake status pake akunku. Awalnya set visible to-nya diri sendiri doang. Terus gak bisa
  • Terus ngeshare isengnya Ammar tadi via status. Sudah lama gitu, baru sadar visibility-nya masih buat diri sendiri doang. Aku emang cerdas.

1 komentar:

  1. harusnya lu masukin lagu "Man with a Mission" yaz
    biar kerasa keren

    BalasHapus