Sabtu, 17 Februari 2018

Daily Life #3

Minggu ini rasanya gak sibuk-sibuk banget (atau menipu diri sedang tidak sibuk). Kesibukan di luar kuliah, paling terkait Ristek sama Pelatnas. Untuk Pelatnas, aku udah harus nyicil ngerjain bagianku daripada ntar mati '_' Kalo Ristek, kemarin nyiapin soal untuk open recruitment CP SIG, yang sekarang lagi jalan. Kontesnya sih dari jum'at sampai minggu ini. Semangat deh buat para peserta :)

Hmm, rasanya ada yang lain. Oh iya. Kemaren ada 2 hal berfaedah yang (akhirnya) kulakuin:

  • Nambah partisi Ubuntu di laptopku. Ini wacana dari tahun lalu cuma baru sekarang dilakuin.
  • Bikin script untuk automasi bikin tc dari tcframe, ke format zip yang diminta HackerRank.
Dan 1 hal yang kurang berfaedah:

  • Tamatin nonton anime Love Live! Sunshine!! S2
Btw, itu nambah partisi tanpa bikin backup sama sekali. Bermodal keyakinan kalo semua data penting di Ubuntu sama Windows udah ada di cloud juga. Untung gak ada masalah :")

ketika berhasil modif partisi tanpa ngerusak apapun
Oiya, aku juga ngerjain soal open recruitment-nya NetSos cuma gak niat-niat banget :P Berhenti pas skornya udah di angka cantik :P Btw buat yang ikut, namaku emang gak ada di Scoreboard :))

Minggu ini gak nambah banyak Kattis dan SPOJ D: Untuk Kattis, akhirnya tembus rank 200an :O Habis ini pasti perkembangannya melambat deh haha.

Sekian dulu deh minggu ini, moga minggu depan bisa lebih berfaedah yang dikerjain. Bikin tutorial gitu misalnya :"

Minggu, 11 Februari 2018

Final Arkavidia 4.0

Setelah lolos penyisihan CP sama CTF Arkavidia, sabtu kemarin aku ikut final lombanya. Ikut lomba yang mana? Well, dua-duanya. Jadi habis nanya panitia (Turfa), aku bisa ikut CP dulu, terus keluar tengah jalan pindah ke CTF, cuma gak boleh balik ke tempat CP lagi. Aku sendiri mutusin pindah kalo udah ada seenggaknya 2 kondisi berikut:

  • Udah gak bisa dikejar lagi
  • Soal yang tersisa nggak sesuai jalan ninjaku
Karena lombanya di Bandung, aku mikirnya buat sekalian ketemu kakakku yang kerja di Bandung. Pas cek jadwal lomba, duh mepet. Aha, ada jam istirahat dari jam 4-7. Aku jadi kontak kakakku buat ketemuan jam segitu. Rencananya juga malamnya mau nginep di tempat kakakku.

Jumat malam aku sama Ricky nginep di ruang Ristek, soalnya bakal berangkat sabtu pagi ke Bandung. Untung bisa bangun. Kami jalan ke tempat travel, terus ketemu Fahmi di situ. Reynaldo juga naik travel yang sama ternyata. Terus yaudah, cabut ke Bandung. Nyampe Bandungnya sekitar jam 9. Itu aku jadinya kontak Jauhar (PIC CP) kalau datangnya agak molor, karena udah ngerasain gak enaknya ngurus lomba yang pesertanya telat dateng registrasi :""" Maafkan saya panitia :"

Sampe di ITB, aku pisah sama Ricky Fahmi karena mau regis CP. Habis regis, dibawa ke ruangan yang dulu kalo gak salah dipake ngasih materi pas jamanku masih Pelatnas (dih udah tua). Sebelum lomba, ada sesi sama Bukalapak dulu, intinya ngenalin Bukalapak gitu. Habis itu kami dibawa ke lab yang dipake lomba, untuk bagi tempat sama briefing.

Baris tempatku ada 3 orang, paling kiri Degol, tengah aku, kanan Rafael. Ada kayak briefing, cuma rada gaje gitu. Walaupun mungkin penting sih, soalnya ada safety-nya. Cuma beberapa fakta di slidenya malah bikin serem.

Terus nyoba-nyoba kompinya.Yey Linux! Nyoba-nyoba compiler sama text editor lancar. Terus nyoba internet sama login ke DOMJudgenya. Internet lancar, DOMJudge-nya ee. Susah bedain l (l kecil) sama I (i besar) di password. Beberapa kali nyoba baru bisa login. Yang kocak, aku iseng buka google. Ternyata gak diblok :O :O :O buka github juga bisa :O Dari panitia cuma diperingatkan kalo bakal ketahuan seandainya buka yang kayak gitu. Oke deh, cuma masih prefer sekalian diblok aja sih. Terus karena masih ada yang belum bisa login, jadinya bebas gitu. Panitia juga bolehin ngetik-ngetik dulu, mo ngetik template juga boleh. Hmm... kurang sreg tapi yaudahlah. Aku gak ngoding template karena emang gak punya. Sebenernya bisa aja ngopas isi citsit, cuma males.

Setelah semua udah beres, nunggu 5 menit buat kontes mulai. Kemudian, kontes dimulai! Karena dikasih versi cetak soalnya, aku buka aja amplop isi soalnya, terus baca. Lebih enak baca di kertas daripada baca di komputer :P Skimming:

  • A: Duh, sort BigInteger. Oh ada constraint X[i] + Y[i] = C untuk tiap i. Bisa lah pake itu. cuma mager
  • B: Dih jorok. skip
  • C: Kayaknya ada hubungannya sama upper hull. skip
  • D: Terlihat DP-ish. Gak langsung keliatan solusinya. skip
  • E: Bentar ini kenapa sample-nya gini? Kayaknya salah ngerti soal. skip
  • F: (liat gambar lingkaran) skip
  • G: Wah math. Kayaknya bakal ribet. skip
  • H: Oh BIT 2D, harus kompres. mager. skip
  • I: loh soalnya sampe H doang
.
.
.
INI GAK ADA SOAL BONUS GITU YA?

Dari semua soal, yang keliatannya paling gampang A. Cuma, kalo itu yang paling mudah, udah kerasa kalo ini kontes bakal berdarah-darah. Aku jadinya mulai dari A. Intinya, dia minta sort berdasarkan X[i] * Y[i], terus X[i] + Y[i] = C untuk suatu C. Awalnya mau hajar Java BigInteger aja, cuma rasanya bakal TLE. Yaudah aku coba mikir C++ aja. Aku mikirnya misal X[i] < Y[i], bisa sort berdasarkan Y[i] - X[i]. Jadinya, aku bikin supaya X[i] sama Y[i] di-pad dengan 0 di depan, terus lakuin pengurangan BigInteger. Ngodingnya gitu aja, cuma ya, hih. Submit. Nunggu. Nunggu. Lama, bisa bikin kopi dulu. Nunggu. Wrong Answer. Ee.

Habis itu, aku coba baca soal lain dulu. Akhirnya, aku ngerti maksud soal E: dikasih array S[i] sama D[i], ada Q query yang isinya hitung max(T * D[i] + S[i]) untuk $L \le i \le R$ . Pas awal baca aku kira hitungnya jumlah, bukan max :s Palingan solusinya Segment Tree isi Convex Hull Trick. Aku jadinya balik ke A lagi. Hmm, gak ada yang keliatan salah. Terus aku baru nyadar kalo di suatu tempat ada yang salah, kutulis '-' bukannya '+'. Habis ganti itu, tes sample, bener. Submit. Nunggu. Nunggu. Accepted. A - Mengurutkan Bilangan AC! Pas itu jadinya rank 3. FYI, setengah jam baru max. AC 1 dari 8 soal. Fix berdarah-darah ini bakalan.

Karena yang saat ini kepikiran E sama H, terus H rasanya lebih capek, aku ngoding E dulu. Aku cukup pede ngerjain E gara-gara beberapa minggu lalu rada sering ngerjain soal pake CH Trick di Kattis. Setelah beres, tes sample, OK. Submit. Nunggu. Nunggu. Wrong Answer.

Kampret ini salah di mana. Terus pas baca kodingan, ternyata ada 2 bug fatal. Salah bikin komparasi untuk nge-pop stack sama ada variabel yang lupa ditambah :"" Jadinya aku coba cek isi semua convex hull-nya dulu. Habis ngerasa yakin, submit. Nunggu. Lama pisan. AcceptedE - Meretas Password Wifi AC!

Habis itu aku baca D sekilas lagi, masih gak dapet ide. Inti D itu gini: Dikasih rooted tree ukuran N dan bilangan X, bikin supaya tiap node nilainya non-negatif, jumlahnya X, dan nilai parent harus lebih kecil atau sama dengan nilai anaknya. Terus yaudah, aku nyicil ngoding H. Pas nyicil ngoding, tiba-tiba kepikiran sesuatu buat D: bisa anggap nambah di suatu node itu sebagai nambah di subtree-nya, dan ini akan mempertahankan kondisi terakhir. Jadi yaudah, aku pindah ke D.

Solusiku rada aneh gitu sih jadinya. DP, tapi ada kombin sama loop harmonic-nya. Harusnya $O(NX \log X)$. Untungnya ngetes kasus terburuknya mudah, bikin chain, terus N = 5000 dan X = 5000. Pas dicoba di local sekitar 0.98 s. TL 2s. Hajar aja dah. Submit. Nunggu. Nunggu. Lama. AcceptedD - Hari Gajian AC!

Pas liat scoreboard, beneran berdarah-darah. Itu aku rank 1 dengan AC 3, peringkat 2 sampe berapa gitu AC 1. Masih banyak yang AC 0. Brutal.

Aku terus lanjut ngoding H. Gara-gara jaman Pelatnas dulu sering ngerjain soal DS 2D gini jadi udah lumayan kebiasa. Yey, kelar. Pas mau ngambil sample di DOMJudge, loh gak dimasukin. Yaudah aku ketik manual. Coba run. Hmm, gak nampilin apa-apa. Hmm, ini kok komputernya tambah lemot.

.
.
.
.
.

Rapidly smashing CTRL+C in panic

Gara-gara kebiasaan ada memory jebol, pasti ini ada yang bikin nambah memory terus-menerus. Kayaknya ada logic kompresinya yang ngawur. Bener aja, ada yang pas dicari indeks-nya malah dapet 0. Ya loop BIT-nya gak bakal berhenti. Habis benerin bagian itu, tes sample lagi. Hmm, terlihat benar. Bodo amat, submit aja. Nunggu. Nunggu. Mau bikin kopi dulu. Nunggu. AcceptedH - Kotak Coklat AC!

Kembali lagi liat scoreboard. Pas menit 100an, akhirnya ada yang AC 2. Degol dapet soal B. Gap-nya udah jauh sih, tapi masih bisa dikejar, masih lama soalnya. Cuma aku gak mau ngerjain B. Jadinya aku nyoba liat soal C sama G.

Pas ngoret soal G, setelah nanganin kasus p = 0 dan p = 1 sendiri, aku udah berhasil ngerjain sampe tinggal nyari k terkecil sehingga $p^{k} \equiv y \pmod{m}$. Cuma gak nemu. Di citsit juga gak ada yang keliatan ngebantu. Coba bikin rumus, cuma rasanya kalo bisa bikin rumus bisa bikin paper (ini ngawur sih). Terus aku coba baca C. Intinya gimana cara memelihara upper hull. Bau-bau pake Mo's Algorithm, cuma gak tau cara nge-restore upper hull kalo ada yang dibuang. Rasanya bisa pake Linked List gitu, cuma semakin dipikir semakin pusing.

Karena dah waktunya sholat, aku turun dulu buat sholat. Pas wudhu, mikir. G. Tiba-tiba dapet inspirasi: k pasti kurang dari m, terus sebenernya bisa lakuin meet-in-the-middle buat nyari k-nya. Bagi bit, jadi bit 0-15 di awal, 16-30 di akhir. Brute force, terus MITM. Terlihat OK. Pas kepikiran rasanya: Eureka! Eureka!

Habis sholat, aku lari ke lab buat ngoding. Ngos-ngosan. Anjir, ini badan emang kurang olahraga. Setelah beberapa saat, mulai ngoding. Kodingannya gak panjang-panjang banget, cuma math yang biasa kepake. Coba sample, loh kok salah. Aha, ada bug. Benerin lagi. Yey, lolos sample. Cuma rasanya ada yang aneh. Asik, ada bug lagi. Habis ditambal, udah cukup yakin kalo itu bener. Submit. Nunggu. Nunggu. Nunggu. Nunggu. Krik. Krik. AcceptedG - Random Generator AC! Yay! Secara gak sadar bilang "yes" sambil ngepalin tangan. Berpotensi mengintimidasi yang melihat.

Pas AC G, liat scoreboard lagi. Rank 1 AC 5. Rank 2-5 AC 2. Rank 6-15 AC 1. Sisanya AC 0. Well...

Habis itu, kerjaanku malah nontonin Christo yang duduk di depanku ngoding. Dia pas itu AC 2, masih berpotensi nyusul. Aku liat jam. Hmm, masih 1 jam 35 menit lagi. Yaudah nontonin Christo dulu. Kalo Christo nambah pindah ke CTF-nya diundur. Kalo gak nambah yaudah pindah ke CTF. Sampe sisa 1 jam 20 menit dia gak nambah, yaudah aku bawa tas terus pindah ke CTF.

Sesampainya di sana, Ricky sama Fahmi lagi ngerjain Forensic sama Web. Aku langsung ngerjain Pwn-nya. Wew, soalnya ada pre-requisite-nya gitu. Auth1 - Auth4 1 program, alurnya urut. Kalo gak solve 1 gak bisa dapet lanjutnya. Aku mulai dari Auth1 dulu. Pas lagi baca assembly-nya, Fahmi dapet Forensic yang 100. Yey, kami gak 0 :""))) Aku baca lagi Auth1, intinya ada ngecek input dengan suatu nilai hasil rand(). Cuma, ternyata seed-nya sama gak di-set. Jadinya harusnya nilainya sama terus. Yaudah, aku coba, eh dapet flag :")) Yey bisa berkontribusi 40 poin :"))

Habis itu aku udah puyeng banget. Dah jam 4, loh kok lombanya belom kelar. Kata Ricky lombanya mulainya molor, tadi mulainya dari jam 1. Selesainya jam 6. Anjir. Karena CTF rada bebas, aku buka FB terus kontak kakakku, bilangin masalah ini. Habis itu aku coba Auth2, gak dapet ide. Mikirnya gimana caranya biar open() bisa masukin path dev/urandom, tapi yang dibuka dev/zero. Gak dapet ide. Sampe 10 menit terakhir, baru nyadar kalo di servicenya bisa nambahin file di tmp/ :"""" Jadinya bikin tmp/dev/urandom, terus Auth2 ngerjainnya buka file itu. Dapet flag Auth2 :"""))) Habis itu lombanya beres. Total akhir 180, rekt parah :")) Timnya Wira, Rakha, Aldi (Arkavidia 9) kayaknya bakal menang, sebelum freeze 505 poin.

Iya, nama timku sama timnya Wira emang ngajak gelut. Dua-duanya reference ke CompFest.

Pas lombanya beres, aku mau ketemu kakakku, cuma kakakku bilang waktunya mepet Gala Dinner Arkavidia, jadi bilangnya ketemunya nanti aja habis Gala Dinner. Jadinya aku bareng peserta CTF lainnya aja habis itu. Btw, si Fahmi udah balik duluan ke Jakarta/Depok, gak tau kenapa pengen langsung pulang gitu. Kami ke Masjid Salman buat sholat, terus jalan ke aula timur untuk Gala Dinner.

Yang CTF sampe aula timur duluan dari CP. Pas yang CP dateng, aku ngobrol-ngobrol sama FJ + Degol tentang kontes tadi. Degol tetep di AC 2, terus kata FJ Binus juga paling banyak AC 2. Wew. Soal-soalnya tadi susah, tapi rasanya terlalu gak balance. Ketika kemaren CompFest udah brutal, masih ada yang bisa lebih ganas :| Komentar tentang lombanya nanti di bawah deh.

Pas Gala Dinner, udah ngerasa ini bakal lama. Aku dikontak mamaku, intinya mending kakakku balik aja kalo gak ada kepastian gini, kasian soalnya udah nunggu dari jam 4. Jadinya aku chat kakakku, bilang kalo ketemuannya mungkin besok aja sebelum aku balik ke Depok, terus kakakku balik ke apartemennya. Still feeling guilty for this :'(

Acaranya akhirnya mulai, terus habis sambutan atau apapun itu yang gak pernah kuperhatiin, akhirnya ada makan-makan. Udah laper banget, jadinya langsung ngantri. Apesnya, antrian yang kuambil itu yang sering diselip-selipin orang penting, jadinya aku ngantrinya mayan lama. Dari dulu udah kebiasa ngantri dapet antrian yang paling lama, entah kenapa ini selalu terjadi padaku :"")))

Akhirnya ada pengumuman juara! Untuk CP, juaranya dari 1-3 + 1 HM. Juaranya:

  1. Muhammad Ayaz Dzulfikar
  2. Degoldie Sonny
  3. Christopher Samuel
  4. Andreas Martin
Hasil akhir selama masih up bisa dilihat di https://scoreboard-arkavidia.cf/
Untuk CTF, Arkavidia 9 juga juara 1!

Scoreboard akhir


buat lucu-lucuan aja, pegang gabus CTF

Jingga Boyz

Setelah penutupan dan foto-foto, kami lalu pergi ke penginapan yang disediain panitia. Tidur, terus besoknya balik ke Depok. Aku akhirnya gak jadi ketemuan sama kakakku btw, kakakku gak bisa ke tempat travelnya pas besok paginya :"

Udah lama gak lomba yang perorangan, mayan juga ada ginian. Ternyata aku masih nggak sekaratan itu haha :") Moga aja sebelum pensiun masih bisa dapet sesuatu lagi ._.v


Trivia:
  • Degol: "Lu keluar di satu jam pertama juga bisa menang Yaz", dan emang iya AC 2 di menit ke-45 harusnya udah menang
  • Pertama kalinya euy ikut dua kontes onsite bersamaan
Notes

Btw, ini komentar tentang kontes CP-nya. Mungkin bisa untuk feedback. Aku gak bermaksud menyinggung siapa-siapa di sini ._. Bisa skip bagian ini kalo males baca hehe.

Problemsetnya aku rasa susah. Mungkin kesulitannya mirip CompFest. Cuma, mungkin kurang seimbang? Di CompFest selama 2 tahun terakhir aku mastiin biar peserta bisa AC seengaknya 1-2. Ini di akhir ada yang gak AC sama sekali T_T Jadi kayak bonus gitu gak ada. Terus ini kontesnya perorangan, jadi mayan susah gitu. Di ICPC, biasanya bisa bagi-bagi kerjaan. Kebetulan aja, E sama H itu soal yang kalo di ICPC pasti dilempar ke aku, makanya aku (harus) lancar ngerjainnya. Cuma buat kebanyakan peserta pasti susah. Kalo habis ngobrol sama FJ + Degol, "E sama H itu idenya simple tapi ngodingnya males"

Sama rada penasaran masalah difficulty. Ini rasanya:

  • Easy: A
  • Medium: B, D
  • Medium-Hard: E, H (implementation hell)
  • Hard: C, F, G
Tapi spike difficulty-nya loncat banget. Dan aku aslinya gak bakal bilang A easy sih...

Mungkin untuk CP Arkavidia tahun depan bisa dibikin lebih balanced lagi, sama naikin jumlah AC pesertanya :")) Sama kalo bisa cari server yang cepetan, sebelum refresh button-nya rusak :"")) Pertahankan yang bagus dari tahun ini (soal menantang, editorial) dan perbagus lagi untuk tahun mendatang!

Overall, dari penyisihan-final, aku suka soal D, E dari penyisihan sama D, G dari final. G dari final keren, walaupun aku gak tau itu di editorial baby-step (baby shark?) giant-step apaan, kayaknya teknik yang gak pernah aku baca. 

Catatan gak penting, kalo inget netijen:

Netijen: "Emangnya lu bisa bikin kontes ?!?!?!?!?"
Me: "Bisa"

Senin, 05 Februari 2018

Daily Life #2

Hola!

Baru aja kelar TOKI Camp jadinya gak ngeblog di akhir minggu huehue :'3 Btw akhirnya Kattis nembus 500 poin :D

Setelah ngeblog yang terakhir, aku langsung TOKI Open Contest yang Januari 2018. IMHO soalnya not bad, D > A > C > B. Yang D asal nembak ternyata AC :O Aku juga bikin screencast, yang bisa diliat di sini. Kalo ditanya kenapa gak bikin commentary, karena aku tidak sepede itu dan lagi gak ada tools voice recording yang bagus :P

Btw, habis kontes, secara ajaib kursiku patah :" untung gak lagi pake earphone, bisa-bisa laptop keseret jatuh juga :"

Setelah TOC yang mayan, besoknya diajak Irvin ikut ARC. rekt pisan euy :"""))) dah lama banget semenjak main di Atcoder haha. C menarik sih menurutku.

Oiya, kemarin juga minggu terakhir magang di SIRCLO. Yah udah harus kuliah T_T Semoga aja yang kemarin dikerjain gak ada yang nge-break. 

Habis last day di SIRCLO, besoknya cabut TOKI Camp. Di rombongan dari SIRCLO ada Ammar yang bawa Nintendo Switch titipanku. Yey, akhirnya setelah bertahun-tahun aku ada beli console baru :"D Baru punya 2 game, nanti kalo udah kelar baru beli lagi. Dari SIRCLO cabut ke wisma TOKI. Lumayan lama, kira-kira 5 jam. Di jalan niatnya main Switch, tapi ternyata mual jadinya tidur :" bangun-bangun malah main LLSIF di HP :P Mendekati Bandung, main lateral puzzle (puzzle yang ada moderator ngasih potongan cerita dan pemain harus nebak cerita lengkapnya). Lumayan seru dan menghabiskan waktu, hingga akhirnya sampai wisma TOKI.

Di TOKI Camp aku masuk ke task force ngurusin P2, mostly bahas tentang penyelenggaran Pelatnas, diskusi sama yang tahun lalu peserta, ngomongin materi + soal. Kalo pas bosen paling nontonin task force tetris main tetris atau tidur. Malam pertama ada diskusi menarik beberapa orang sampai jam 3 pagi, yang tengah jalan aku udah mulai kehilangan fokus :"))

Anyway TOKI Camp udah berakhir, dan sekarang udah masuk kuliah :"))) ngasdosin TKTPL kayaknya huehue. Semoga bisa ngebantailatih orang-orang >:) Selain itu, aku juga jadi Head of CP SIG Ristek, semoga aja lancar hehe. Buat orang fasilkom, daftar CP SIG ya :P

Sekian dulu, sampai nanti lagi~

Note:

  • Classifier ngadet hiks, lanjut lagi 2 minggu lagi kayaknya karena ada Arkavidia akhir minggu ini
  • WATER BLUE NEW WORLD lagunya ENAK PISAN CUY
  • Macaron ternyata ENAK PARAH CUY


Jumat, 26 Januari 2018

Daily Life #1

Kembali lagi di mencoba konsisten menulis :P Dan ya, bingung cari judulnya. Nyari nama variabel aja udah susah, ini sekarang nyari judul.

Jadi kemarin baru menyadari kalau di SIAK, ada kelasku yang dipindah entah oleh siapa. Sebelum dipindah, posisi 55 / 50. Terus, pas ngecek lagi, kelas tersebut sekarang kuotanya 60 ~_~ Syedih. Konspirasi agar tidak mendapatkan kelas yang diinginkan.

Anyway, minggu kemaren ada pengumuman Arkavidia. Lolos CP, dan ternyata lolos CTF juga. Entah nanti belajar kagebunshin sama siapa. Oiya, itu nama tim CTF-nya ngajak gelut emang, Ini CompFest ITB?. Tapi bukan aku yang bikin namanya ya :P kalo mo gelut sama Ricky aja :P

Selain itu, aku juga ikut 2 kontes minggu kemaren, CodeCraft di CF sama Round 66 di CSAcademy. Yang CF rada fail, gagal C sama D. C kena tricky, D gara-gara ada bug off-by-one yang hebatnya baru kena di tc terakhir, yakni yang ditambah karena hack. Sejujurnya, udah rada males sama kontesnya. Tanpa bermaksud buruk, aku kurang suka kontes yang diadain orang India. Entah sejak kapan, aku udah mengasosiasikannya dengan soal-soal math aneh atau teknik-teknik yang bosenin. Bosenin di sini maksudku ngodingnya lebih sulit dari mikirnya, atau kalo gak tau yaudah mampus. Makanya aku gak aktif di OJ-OJ India kayak CodeChef dll.

Untuk contoh mudahnya sih, dari CodeCraft kemaren, ada soal G. Pas liat soal:

  • "Ah, ini yang or gampang pake loop 3 pangkat"
  • "Hmm, ini xor sama and kayaknya perlu aneh-aneh"
  • "Kayaknya kemaren Firman ada nunjukin tutorial sejenis FFT buat xor"
Habis itu aku googling dan nemu tutorialnya di CSAcademy. Bener-bener copas doang untuk ngerjain soal itu. Such wow, much fun. Soal D sama E juga aku rada males gitu ngerjainnya. Input gede dan TL gede, rada strict. Hazek.

Anyway, ini cuma opini pribadi aja ya. Terkadang ada soal-soal dari OJ India yang mindblowing, cuma karena udah rada negatif gitu opininya mungkin aku sering skip hehe. Ingetku ada beberapa soal dari Snackdown 2 tahun terakhir ini yang aku lumayan suka, cuma aku lupa soalnya yang mana.

Habis kontes rating-ku -3, kupikir padahal habis fail gitu bakal turun warna haha. Tinggal tunggu waktu aja sih turun dari merah :")

Setelah itu, ada juga round 66 CSAcademy, yang notabene cuma untuk div. 2. Yep, aku emang baru-baru aja aktif di CSA. Itu round 66 baru kontes ketigaku xD Kemaren pas kontes diselamatkan sama sistem penilaiannya CSA. Jadi, awalnya kukira D konstruktif parah, jadi aku skip karena lemah di konstruktif. Pas baca E, langsung tau itu pasti pakai eulerian tour, terus aku harus nyari-nyari codinganku dulu untuk nyari eulerian tour :""))) Setelah itu aku ngoding, dan ada masalah implementasinya, jadinya pusing gitu :"""")))

Habis itu, aku balik ke soal D. Melototin sample, rasanya ini kalo ada solusi pasti ada solusi yang nuker baris doang. Yaudah jadinya ngoding bipartite matching, eh AC :") Habis gitu balik ke E, dapet WA-WA karena nge-bug, terus berhasil benerin, dan AC :") Itu kalo pake sistem CF atau TopCoder pasti poinku rendah banget D sama E xD Untung sistem penilaiannya liat last submission sama penalty yang mayan rendah. Jadinya di round 66, rank 3 overall dan rank 1 official :") Naik div. 1 yeay 

Minggu depan udah TOKI Camp. Mau gak mau harus datang atau disembelih sama Agus padahal pengen naik gunung. Kemungkinan bakal ada perbincangan terkait OSN juga di camp. Masih galau pengen jadi SC OSN lagi atau ngajar di SMA-ku dulu. Sayang euy udah beberapa tahun gak ada medali lagi :"

Sekian dulu dah, hehe. Sampai ketemu di post selanjutnya

Sabtu, 20 Januari 2018

Post Awal Tahun

LOL udah setengah tahun gak nge-post apa-apa :P

Secara pribadi, ada banyak hal yang pengen ditulis, misalnya:

  • ICPC Yangon 2016 (krazy, parah)
  • ICPC WF 2017 (terutama drama visa)
  • OSN 2017 (salah satu bucket list sudah terpenuhi :D)
  • CPC CompFest 9 (Innalillahi)
Cuma, entah kenapa males gitu buat nulis, hehe.

Well, melihat 2017, rasanya luar biasa. Spike emosinya banyak. Kayak, jatuh-naik-jatuh-naik mulu:

  • WTF lolos WF
  • Stres karena takut bikin satu tim gagal pergi WF
  • Bisa jadi SC OSN + jalan-jalan ke Pekanbaru
  • Ngurusin CPC CompFest yang bikin asdadsadsadsa
  • Kenalan dengan binary exploitation (seru cuy)
  • Gak lolos Gemastik CTF karena pemerataan
  • Harusnya ada lagi tapi lupa hehe
Banyak banget yang dialami pas 2017 ini. Mungkin pertama kalinya ngerasa burnout, sampe males banget berurusan sama Competitive Programming. Serius, burnout pas mendekati akhir CPC, untung CPC-nya kelar, phew.

Ngomong-ngomong soal CP, pas akhir tahun lalu, aku mikir tahun 2018 udah mau retire, gak peduli lolos WF atau nggak. Hanya saja, akhir-akhir ini entah kenapa jadi galau gitu, mau berhenti nge-CP dan nyoba hal lain, atau simply nge-CP sambil nyoba hal lain. Entahlah, liat aja ntar bakal ICPC lagi atau nggak.

Aku juga karena bosen (dan iseng) mencoba ngerjain Kattis. Siang baca soal, di kereta coba mikir solusi, malam sebelum tidur atau pagi sebelum berangkat magang nyoba ngoding. Pengennya biar bisa bikin kayak classifier soal-soal Kattis gitu. Hari ini harusnya aku nyicil classify soal-soal SPOJ yang udah aku solve, cuma karena SIAK War semalam bangke jadinya hari ini ngantuk parah, dan aku jadinya tidur mayan lama. Bangun-bangun lemes gitu buat ngerjain. Moga aja classify soal SPOJ ini bisa mulai secepatnya. Motivasi bikin classifier ini gak tau sih, mungkin biar bisa dihibahkan ke matkul CP UI tahun depan. Atau ya, iseng doang.

Hmm, semoga aja habis ini bisa lebih niat nge-blog, menulis apa yang harusnya dari dulu kutulis, sama mungkin sharing teknik-teknik aneh-aneh lagi. Semoga aja bisa konsisten nulis >:)

Note:
Gak terasa sekarang udah 20 tahun. Terus, tiap pulang ke Bontang atau nelpon Mama udah sering ditanya udah punya pacar apa nggak. Hiks. Mohon bersabar Ma. Ini lagi nyari yang 3D. 

Minggu, 09 Juli 2017

Hyouka


Selasa, 13 Juni 2017

How I Came Up With My CP Problems

Terkadang, pas baca-baca soal yang pernah kubuat, aku mikir

A: "hmm dulu aku kok bisa came up sama soal ini ya?"
A: "...."
A: "duh udah mulai tua"

Well anyway, mungkin menarik kalau nulis saat-saat dapat ide buat soal sama sumbernya (?) Anyway, soalku (selain Pusat Air) bisa dilihat di githubku, bisa klik ini kalau mau lihat. Soal di bawah ini terurut berdasarkan kapan aku dapet idenya. Anyway, here you go:

  1. Pohon Kelereng. Entah gimana caranya bisa salah ngerti soal ini, terus jadinya si Pohon Kelereng ini. Awalnya cuma bisa "turn on", terus di akhir jadi "toggle".
  2. Wisata Kucing Garing. Gatau, dapet aja tiba-tiba. Gampang gitu
  3. Road to Hero. Baru aja belajar cari maximum average pake binary search. Terus mikir apa yang bisa digituin lagi, kebayang DAG. Jadi deh.
  4. Domino. Pas mau mikir soal CompFest, mikir "berapa minimal 2 pangkat yang perlu ditambahin biar suatu bilangan jadi 2 pangkat?". Terus pas mau TOC baru nyadar kalo ini sebenernya mirip iterasi BIT. Alam bawah sadar (?)
  5. Rammeow. Lagi mikir terkait subarray yang isinya beda semua, terus "oh jadiin query aja gimana?". Btw, pas TOC gak ada yang AC dengan solusi intended yang lebih simple :P
  6. Friend-Score. Lupa kenapa kebayang soal ini deh :/
  7. String Seimbang. Lupa juga :/ AAA MALU SOALNYA KLASIK
  8. Ramduel. Lagi panggilan alam. Biar produktivitas++ nyoba mikir soal. Terus "Hmm kalo soal terkait LCS gitu gimana ya?". Terus dapet soal ini, keluar kamar mandi langsung solved
  9. Pusat Air. Ini gak kumasukin githubku karena suatu alasan. Dapet pas lagi mikir max-flow sama tree secara bersamaan.
  10. Belajar FPB. Awalnya mikir versi lebih sulit, gak solve. Terus kebayang soal ini. Btw, soal ini ngalamin sekitar 4-5 improvement dari versi awalnya.
  11. Huruf Ajaib. Awalnya mikir versi simple yang solusinya linier tapi mirip. Terus pas di kantin mau beli makan mikir, "gimana kalo stringnya diconcat terus ya?". Maaf ribet :"
  12. Cerdas Cermat Cepat-cepatan. Udah setuju mau kontribusi di TOC, tapi belom dapet soal. Pas lagi baca buku Anum buat ngerjain PR, baca faktorisasi QR. Terus keinget pohon faktor. Terus kebayang soal ini. PS: Maaf accepted rate-nya kecil parah untuk soal ini :"
  13. Teman Terbaik. Di pagi hari, aku mau narik uang di ATM. Ada 3 mesin. Aku ambil yang paling kanan. Sebut aja nomor 1. Habis aku mulai pake mesinnya, ada ibu-ibu pake paling kiri, sebut aja nomor 3. Ibu-ibunya keluar, punyaku masih belom ngeluarin duit. Transaksinya gagal. Misuh, pindah ATM. Terus udah. Short story: sample itu mendekati kejadian ini.
  14. Teka-teki Cak Lontong. TOC Mei kurang soal paling mudah. Terus karena salah satu problemsetternya Prabowo yang suka joke kayak ginian, aku jadi dapet soal ini. Aku sendiri kesel sama joke ini btw wkwk :<
Semoga aja list ini bisa terus bertambah (?)