Skip to main content

Jurnal Pelatnas 1 TOKI 2018, Minggu Ketiga: Memanas

Kembali lagi bersama saya, Galang. Saya bersyukur di dalam pelatnas yang semakin menggila ini saya tetap diberi kemudahan dalam mengatur waktu agar bisa menuntaskan tulisan ini.

Senin, 9 Oktober 2017

Sarapan hari ini agak berbeda, karena aku sarapan ayam richeese hasil kemarin. karena gaada nasi maka aku ambil di tempat sarapan dan aku makan disana ayamnya :v

Setiap awal minggu, selalu tehembus suasana segar yaitu pengajar baru. Hari ini kita kedatangan pengajar dari binus. ya langsung saja ke IPB.

Jadi yang ngajar namanya Kak Rafael. aku sebenernya dapet ketemu sih pas BNPCHS. materi hari ini tentang geometri yaitu rumus-rumus garis, poligon, dll. aku lemah banget lah di geometri.

Tama: "selama kuis,simulasi tahun lalu gapernah ada geometri"
Galang: "waktu ini barusan ada, yang balon tu"
Tama: "itukan pake stack!"
Galang: "kamu ngitung jarak 2 titik pake stack?"

just nomor bangku tempat dudukku


latihan dimulai...

pertama sih aku baca A, tp agak bingung jadi baca B. nah ini, salah satu soal termainstream di olimpiade SD. aku siapin library geometriku dan panggil-panggil fungsi dan soal ini AC dengan oneshot. trus A,C itu soalnya ga menantang ga lama setelah makan siang sudah AC. nah tinggal D. ini waktuku 4 JAM untuk mikirin. setelah mencoba berbagai ide gila, solusinya baru kepikiran 20 menit sebelum kontes (inti soalnya diberikan N titik trus cari total luas dari semua segitiga yang mungkin dibentuk n<=3000). kukoding namun karena kurangnya testing maka solusi ini ngebug. kelemahanku yang masih ada adalah aku gapernah bisa mengackan sesuatu saat waktu mepet. skorku 320 (nyampah D).

Seperti biasa, Salman si imba dapet 400.

QOTD
*kakaknya bilang nama panggilannya rapel*
Galang: "we tam, rapel"
Tama: "apa to"
Galang: "sekolahmu gapernah rapel?  memang ngapain saja sih selama disekolah?"
Tama; "belajar..."

Selasa, 10 Oktober 2017

Hari ini aku bangunnya males banget. hari-hari awal aku bangun jam 5 sudah segar-bugar namun sekarang kok bangun set 6 kaya males gitu yah, mungkin tubuhku sudah ga jetlag lagi dan udah ngikutin jam Bogor.

Maka aku sarapan agak terburu-buru. di tempat sarapan ketemu pengajar BINUS hari ini yaitu Pak Felix. kali ini aku salah satu yang paling telat datengnya, first time for everything lah.

yaudah deh, ke IPB trus belajar.  bhari ini materinya convex hull, linesweep dan coodiante compression, semacam "algoritma" geometri. harusnya sih lebih mending dari kemaren yang full rumus. salah besar

saat aku ambil nomor undian tempat duduk, aku langsung kecewa karena dapat kursi "maut" yaitu B06. tepat bagian samping AC dan dinginnya bakal terasa langsung.

pertama baca sih langsung ngerjain B karena straigtforward. namun ngebug gitu lah. yaudah skip. aku baca D dan itu tadi sudah dibahas saat sesi materi xD. namun males ngodingnya yaudah skip. tinggal A doang, aku suka banget soal tipe konstruksi, intinya ini disuruh buat convex polygon dengan 400000 titik latis dimana masing-masing titik di antara 0 sampe 4*10^7. aku akhirnya nemu algo konstruksi yang memanfaatkan properti gradien. eh makan siang dan nilaiku masih 0 :(

when u see it

saat makan siang seperti biasa ada permainan werewolf. di suatu permainan, aku dan Akbar menjadi werewolf dan saat "werewolf buka mata" kita gabisa nahan ketawa karena ini terlalu kocak. tapi gaada yang curiga kami ketawa-ketawa gaje saat sesi malam. akhirnya setelah beberapa sesi Akbar ketangkep, Akbar mengisyaratkan agar aku voting Budi namun karena sudah jelas Akbar terbukti Werewolf apabila aku voting Budi maka jelaslah ketahuan aku werewolf maka aku voting Akbar saja. Akbar mati, pemain sisa 3 dan aku dinyatakan menang!!. cihuy mantap werewolf.

balik ngambis. biar aman aku ackan D dulu. trus nyoba lanjutin A tak terasa sudah utak-atik algonya selama 2 jam. akhirnya dapat 90 juga, cukup memuaskan. waktu lagi 90 menit dan aku sama sekali belum mikirin soal C, maka aku bug fix B dulu. dan ga ketemu-ketemu bugya. akhirnya nyoba C tp jijik kayaknya ini pure math jadi sampai akhir gaada yang AC. total acku hari ini cuman 1 itupun soal bonus yang solusinya ada di slide :(((. katanya sih soal B solusi juri untuk subtask 1 ga nganggep kalau dia collinear tp ga gabung, dan katanya itu cuman bs AC pake jarvis. yasudahlah mungkin ini karena tempat dudukku jelek :v

belum muncul niat untuk repeating soal-soal ini :\ besok akhirnya materinya seru lagi, DP dan greedy.:D

malamnya aku dikasih tau kalau blog P1nya IPB sudah sampai hari 2 juga. jadi aku baca-baca dan nemu quotesku. menarik juga sih, kalau blog ini dari sudut pandang pembina sedangkan blog ini dari sudut pandang peserta
http://toki-biro-ipb.com/pelatnas1/2017/10/08/

QOTD:
Galang: "aku masih gaada bayangan hard DP itu setingkat apa, apakah selevel IOI atau OSN D1-B?"
Amnu: "setingkat pelatnas 1"

Rabu, 11 Oktober 2017

bangun pagi seperti biasa, trus mandi dll. sarapan seperti biasa, trus berangkattt.

hari ini akhirnyaa terbebas dari geometri, masuk ke bisa topik favoritku; DP. katanya hari ini ada materi greedy juga sih. hari ini ada pengajar baru yaitu Kak Ayaz. Kak Ayaz sudah beberapa kali ngomong dan menurutku lucu banget. mudah-mudahan ngajarnya juga asik. sebenernya sih hari ini kita gak belajar DP dan greedy biasa, karena topiknya ditulis "Hard DP dan Hard greedy".

kelas dimulai. wah ternyata memang seru. jokes andalannya Kak Ayaz sepertinya buku "gak lolos TK" karena terhitung ada 3 slides yang nampilin buku itu. pembukaan presentasinya saja:

"Hard DP... sebenernya saya bingung apasih hardnya"

tentang DP diajarkan beberapa teknik yaitu flying table, dp map, backtraking. sedangkan untuk greedy... dikasih soal. aku sih suka sama foto-foto dari slidesnya seperti saat memberikan opsi-opsi backtracking trus dikasi tau bisa telurusi tabelnya dan bakal pas, ada foto pertamina yang "pasti pas"

materinya selesai 30 menit lebih awal, jd sudah saatnya berangkat latihan. asik-asik, sudah gasabar gimana sih soal hard DP?!

aku baca urut lah. A aku rasa bakal greedy jadi skip. trus ruanganku ribut karena ada soal "pelontar bebek" maka aku tenangkan sambil tersenyum karena pernah ngerjain. aku skip dulu karena implementasi rada males. baca C, deskripsi pendek, implementasi mudah jadi lansung kukoding dan oneshot AC. baca D, inimah cuman knapsack biasa ditambah backtracking, kayaknya ada soal di bab DP TLX yang lebih susah deh karena minta batu terkecil dan print lekiksografis (yang ini bebas).

tapi aku koding pelontar bebek dulu, terakhir koding itu setahun yang lalu sih tapi solusinya berasa masih segar dikepala. setiap kali aku koding soal lama, merasa skillku meningkat signifikan karena aku ingat betapa jijiknya kodeku yang lama dibanding dengan yang baru. sempet bingung sih soalnya aku kira kecepatannya juga dijumlahin dan cek kalkulator kok bs salah, setelah diluruskan, ini AC.

trus aku implementasi soal Pijat, seriusan knapsack biasa, AC. jadi aku sudah AC soal B,C,D kira-kira 30 menit sebelum makan siang, dan tampaknya yang A gapake DP. jadi kalau memang 3 soal inilah yang dimaksud "hard DP" maka aku kecewa :/ soal bab DP di TLX lebih susah deh rasanya.

saat makan siang ada kakak yang bawa kartu werewolf, namun aku lagi pingin ngambis karena aku ngerasa yang A bakal mudah. salah (atau benar?)

inti soalnya sih ada meja bundar ukuran M trus ada N anak, tiap anak punya kursi favorit namun anak harus didudukkan dimana jarak antar 2 anak berseblahan sama semua. tentukan nilai minimum dari nilai maksimum jarak antara posisi anak dengan kursi favoritnya (M<=10^6, N<=20000, M habis membagi N)

aku coba cari obserasinya selama 3 jam dan ga dapet, kelihatannya Salman juga stuck di soal itu. aku coba berbagai macam pruning dan randomized namun sayangnya tcnya kuat :(. aku taulah ini pasti greedy namun gatau mau digimanain. yang jelas sih kursi favoritnya di sorting dulu. aku coba bruteforce coba-coba misal start awalnya di x, hitung maksimum trus cari yang minimum dapet 30, maka observasi tersebut bener dan tinggal dicepetin cek rotasinya.

ga ketemu observasi tambahan dan aku pingin banget cepet ACkan soal ini maka  terpaksa aku keluarkan salah satu strukdat pamungkasku, TDS. jadi bisa "simulasiin" setiap rotasi sekalian ngecek dalam waktu O(N + M). koding dan AC.

Selama latihan ini sebenernya diperbolehkan memakai headset dan denger lagu, namun aku tak melakukannya karena headsetku jelek, mungkin aku harus mulai membiasakan diri. tadi aku liat ada yang nonton Moana :v.

Waktu latihan lagi 90 menit, maka aku keluar nyari hiburan. terlihat Salman lagi main five in a row. katanya dia jago banget jadi aku tantang.

duel maut Rama dan Salman


ketika waktu latihan tinggal 7 menit, ada keributan di ruang sebelah yaitu temen-temen mulai nanyain solusi. aku bilang gaboleh karena masih latihan namun mereka bilang kan gaapa gabisa di koding. tapi kan tetep saja ini masih latihan ikutin aturan dong :(
X:"Yang C kasi tau dong statenya apa aja??"
Galang: "eh gaboleh nanya, kan masih latihan"
X: "kan lagi 3 menit!"
Galang: "yaudah kamu tunggu lagi 3 menit baru nanya"

trus ada beberapa peserta yang bilang kalau soal A mudah, aku jadi kecewa. akhirnya saat waktu habis aku langsung bertanya, "YANG A GIMANA??" dan diketawain :(. waduh aku cupu berarti.
ternyata solusi aslinya pake math ._. oneliner lagi. memang daridulu aku rada gasuka greedy karena aku tuh orangnya suka berbagi (eh). tapi ya gatau gapernah bisa lah solve soal greedy yang hard. tadi aja tertolong karena kebetulan tau strukdat tsb. kalau ga bakal jadi bahan olok-olok aku :"

aku tidak lupa promosi blog karena part 2 sudah keluar.
Galang: "we part2ku udh keluar"
Rama:"di blognya Galang aku cuman ctrl+f "Rama" gitu doang"

Hujan turun deras namun temen-temen tetap nekat keluar. berbeda dengan aku,Rama, Tama, dan beberapa orang lainnya yang masih di lab. sebenernya aku pingin ke Botani sih beli perlengkapan karena kertas orat-oret sudah habis. jadi aku ngajak Tama karena sudah malam. sekalian beli pulpen dah. aku beli pulpen 1 biji dan kertas 1 lempir di gramed harganya 30 rb. eh buset ternyata pulpennya 20 rb >_<.. aku bakal ngambul nih kalau di curi pulpenku. kalau di Bali sih ada toko alat tulis murah namanya "Nadhi Mart" dimana pulpen itu seribu dan tahan lama.

 keluar dari gramed, aku cek dompet dan terkejut karena dompetku isinya dua ribuan doang. sepertinya Tama juga lagi krisis. jadi kita mencari ATM terdekat. selama pelatnas karena serba ditanggung aku cuman ngeluarin uang kalau laundry atau lagi pingin makan enak jadi aku rasa gaperlu bawa uang banyak-banyak.

balik dari botani masih hujan, jadi aku sama Tama hujan-hujanan berdua. ayolah jangan sakit sekarang :(

saat sampai di hotel aku sudah siap tempur untuk besok. besok materinya full DP, YAY!. aku liat bakal diajarin "DP with Profile". aku baru tau ada yang namanya "profile". aku coba googling dan nemunya itu sama saja kaya DP with bitmask. mudah mudahan besok bisa diluruskan.

QOTD
"Just constraints jaman now" -Kak Ayaz

Kamis, 12 Oktober 2017

Semakin parah saja kemampuan bangun pagiku. hari ini bangun mendekati jam 7!. yaudahlah makan, dll. sarapan hari ini enak banget, ikan asam manis jadi aku ambil banyak sampai kenyang. trus seperti biasa ke IPB. hari ini ganti pengajar, dan pertama kalinya di Pelatnas ini pengajarnya ada dua yaitu Kak Maxi dan dan Willson.

Materi hari ini DP bitmask. aku sih lumayan fimiliar jadi kupikir bakal asik, dan beneran asik sampe dikasi soal terakhir. bingung banget dari pembahasannya. soalnya soal codechef: RRSERVER. trus akhirnya DP Profile, nah ini mendingan sih. aku baru ngerti apa bedanya dp profile. keren juga. aku sih pikir latihan soalnya bakal asik karena lumayan suka lah DP.

lanjut  latihan, kursiku sama kaya kursi kemaren. soal latihan: berapakah peluang itu terjadi?
jawab = 1/29 (Silahkan blok tulisan ini)

aku baca A, yah sudah dibahas tadi pagi namun kodingnya mager jadi entaran. setelah baca B,C, deskripsi soal hari ini sangat singkat, aku seneng. baca D, itu TSP biasa jadi AC. trus karena C itu "upgrade" dari soal A, sedangkan aku gapernah ngoding profile sebelumnya, maka aku latihan dulu dnegan mengackan soal A. selesai kontes ada yang bilang bahwa solusi A di slide ifnya kurang padahal solusiku malah tak kurangin ifnya xD. anw, balik jawab soal. saat makan siang aku baru AC 2 soal "bonus" itu.

makan siang, seperti biasa ada permainan werewolf.
Hampir setiap hari, selalu saja ada permainan werewolf saat makan siang. mungkin beberapa penasaran, "gimana sih anak TOKI main werewolf? kan biasanya werewolf dijadikan ajang tuduh-tuduhan". jadi aku ingin mengklarifikasi, werewolf itu bukan game tuduh-tuduhan ya. itu game adu otak dan pintar-pintaran nipu orang. yang jelas kami mainnya analisis berlapis-lapis, serius dan ga asal nuduh tentunya, berikut ada rekaman yang aku ambil diam-diam dari awal main, sampai selesai.

https://soundcloud.com/galang-kangin-223198963/werewolf

pemain werewolf di game ini: (maaf lupa perannya, sisanya mungkin bisa ditebak dari video diatas)
-Akbar (werewolf)
-Yoga (werewolf)
-Aku (anak malang)
-Alghi
-Richard
-Akbar
-Refindo
-Rama
-Steven
-Alvin

selesai werewolf, balik ngambis 2 soal. parah lah sampe akhir ga nemu. soal C intinya cari banyaknya persegi ukuran 2x3 maksimum yang dapat ditaro di dalam grid ukuran NxM apabila beberapa petak tertentu dalam grid gaboleh dipake (N<=10, M<=150). akhir-akhir aku nemu ini bisa pake ternary bit. saat algo sudah tersusun rapi dan saatnya ngoding memo, aku baru nyadar kalau ini bakal MLE. njirrr, waktu lagi 3 menit dan gamungkin lah aku nemu approach baru from scratch, jadi aku main agar.io dan mengakhiri hari ini dengan nilai 220. rekor nilai terendah baruku.

ada sesi pembahasan sih, yang B katanya pake SoS DP, aku pernah baca di CF tp aku kira itu teknik dewa jadi ga kupahami. ok sepertinya saatnya pelajari itu. sampe di kamar walau ada "PR" dua soal, aku malah tidur karena masih berusaha menerima kenyataan bahwa hari ini bisa saja nilaiku peringkat terakhir. tapi aku janji akan kukerjakan soal-soal itu.

malemnya aku baru sadar kalau ada laundrynya Refindo di kamarku ketinggalan. mampus. aku telpon mas laundry dan untung mau diangkut besok.

QOTD:
*lagi bahas soal saat materi*
Hocky: "kayaknya bisa greedy"
Kak Maxi: "selamat anda orang pertama yang mikir approach greedy di soal N<=20"

Jumat, 13 Oktober 2017

Seperti biasa, bangun dll. saat sarapan hari ini  sarapannya ayam kuah enak, maka aku ambil kuah sampai banjir piringku. trus rutinitas biasa, trus ke IPB deh.

hari ini balik lagi ke Kak Ayaz. sebelum ke materi utama ada materi review kemaren karena pada AC 2. lanjut ke materi utama hari ini: DP on tree. nah aku tuh sering banget ngerjain soal DP on tree jadi aku pikir ini bakal ez, taunya aku diajarin hal keren baru namanya "left child right sibling" atau LCRS teknik untuk ngubah tree jadi binary tree. OK sebelumnya aku bagi dikit deh cara belajarku, jadi aku tuh ngerjain soal, kalau stuck baca solusi, "oh pake dp... (langsung belajar DP itu apa)" "oh pake maxflow... (langsung belajar itu apa)" dst... jadi kalau tekniknya langka ya aku gak tau lah. ini keren bangett tekniknya bisa dicoba googling aja.

lalu temenku nyadar kalau materinya cuman 1 slide, dilanjutin soal doang. "bah sisanya soal dan gambar-gambar gak jelas" katanya. padahal gambarnya seru. ternyata setelah soal masih ada materi. lalu Jokesnya sekarang gak lulus SD, karena TK udah yg kemaren. tp menurutku lucuan bukunya gak lolos TK sih, ada kungfu pandanya :(.

trus disinggung dikit dengan optimisasi DP dan row-major, column major dimana iterasi column major bisa lebih lelet dari row-major
Kak Ayaz: "kalau kalian coba ini, kalian bakal terkejut. enggak ini bukan line today, ini serius"

trus untuk saat ini, inilah waktu tercepat untuk suatu materi habis, jam 9 materi DP tree sudah habis :/ jadi dapet "materi tambahan" dari Kak Ayaz  yaitu CTF. jadi Kak Ayaz ngepratekkin skillnya ngehack program di LCD, mulai dari ngecheat di game labirin, sampe ganti-ganti nomor lotere biar menang. kerenn. tapi sayang ternyata dengan ilmu segitu belum cukup untuk ngehack facebook :(

karena selesai cepet, latihan dibuka jam 9.30.

Baca hiasan dinding langsung tersenyum, asik sudah pernah ackan ini. skip dulu karena aku tau ngodingnya ribet. setelah baca semua soal, aku memutuskan untuk attack soal D, karena aku salah baca soal. setelah membuang-buang waktu 90 menit baru aku sadar kalau aku salah baca dan ternyata ini soal hard. mataku tertuju pada soal B. aku dapat observasi bahwa peluang jawabannya "0" sangatt tinggi, terjadi apabila banyaknya kepala >2 dan <=buah/2 jadi untuk pertama kalinya dalam pelatnas aku langsung coba cout<<"0\n" karena penasaran brp jawaban yang 0. aku berekspektasi bakal dapet 70+ lah, namun ternyata aku cuman dapet 30. berarti testcasenya "sengaja" dibuat biar ga banyak yang jawabannya 0.

ok lanjutin observasi, dan tenryata ini bagi dua kasus dengan dua DP berbeda. yang dp 1 sudah bener, namun DP 2 ku ngebug gaje. setelah debugging lama (~3 jam) dan tambahin debug print ga ketemu dan tetep salah di sample 1. ternyata baru sadar kalau DPku yang lagi 1, gak di MEMO.  @%*HHG*QHIQQG*)$*UR@). yaudah tambahin satu baris, sample lolos, dan oneshot ac.

hari ini aku gaikut main werewolf karena pingin ngambis.

baca ulang soal C, ternyata ini soal termudah hari ini. cuman dp biasa gaperlu aneh-aneh, AC. trus karena D susah dan waktu lagi 2 jam, maka aku "main aman" dan Ackan A dulu. setelah AC dan dapat 300 maka semua tenagaku terfokuskan ke D. sejam sebelum kontes nemu solusi pake bitmask dan kukoding. entah untuk suatu alasan aku proofingnya lama, ditambah ngebug sampe akhir, jadi ga AC. namun syukurnya aku sudah dapet buat bruteforce jadi nilaiku untuk soal ini 63. aku mengakhiri hari ini dengan 363.

Salman sudah selesai dalam 3 jam m(_ _)m mastah memang beda.

dan untuk suatu alasan banyakk orang yang AC D, sedangkan dikit yang AC A dan B. jadi merasa bodo saja ga AC D. kutebak bugnya pasti ngakak -_-.

Nah, disini aku membuat suatu pencapain baru dalam hidupku. yaitu aku pertama kali dalam sejarah menang minesweeper


detik-detik memenangkan minesweeper

setelah itu ke hotel, besok adalah kuis yang merupakan "maut" di pelatnas. karena aku mulai ga yakin dengan kemampuanku maka malem ini aku mampir untuk ngambis di kamar tama. kita ngerjan soal IOI 2016 dan 2017. sukses lah AC 2. setelah itu laundry dateng, namun aku males nungguin jadi titip di resepsionis. Refindo sudah datang namun aku bilang laundrynya ketinggalan :(.  selesai laundry balik ngambis, namun Tama sudah capek, sayang padahal udah nemuin proofnya soal ketiga xD.

JOTD:
*Inigo habis ul kimia dan biologi*
Galang: "aku ada tebakan, larutan apa yang bisa ningkatin sinyal HP?"
jawab: larutan asam, karena mengandung H+
Inigo: "Kode DNA apa yang lebih ningkatin sinyal HP?"
jawab: GGGG (4G)

Sabtu, 14 Oktober 2017

Hari sabtu sudah tiba!! hari kuis kedua pelatnas. seperti yang pernah kubilang, kuis itu bobotnya tinggi banget jadi penting banget untuk menentukan kelolosan di pelatnas. suasana dan pengawasannya juga kayak lomba.

mulailah pengerjaan. maksudnya waktu itu, waktu yang kuperlukan untuk melakukan suatu proses ini

---kontes dimulai
aku baca A, karena kebiasaan soal A itu termudah maka aku attack. baru nyadar ini bukan greedy dan ku skip (waktu: ~10 menit)

baca B, asek-asek soal mudah ketemu. inimah greedy two pointer. aku coba submit dan WA?!. yaelah karena keasikan lupa nambahin left pointer kalau gaada solusi xD. kusubmit lagi dan masih WA???!!!. wat de... jangan-jangan ini soal ga semudah yang kukira. coba baca dengan teliti dan bener kokk. terus aku baca syarat validnya. yaelah harus >k.



tambahin satu tanda, AC. nice! (waktu: ~20 menit)

baca soal C. wahini. jadi inget materi "sudut pusat sudut keliling" saat SMP. nah aku buat observasi kalau sudutnya pasti lancip kalau sudut-sudutnya terletak dalam suatu potongan diameter. jadi ku binser sama linesweep trus mainin deque biar bisa cyclic. jadi kalau udah proses suatu titik aku pop dari deque trus push kebelakang tambahin 360.

kucoba di sample tc 2. dan dapetnya salah. aku bingung, lah sudah kucek dan semuanya cocok. aku sampe akhirnya buat program untuk ngecek apakah 3 buah sudut tertentu bisa menghasilkan segitiga tumpul, turunin rumus cosinus segala. awalnya aku turunin rumus sampe dapet sudutnya trus cek apakah sudutnya tumbul atau ga, tapi aku baru sadar kalau kita cuman perlu cek sudutnya tumpul atau enggak xD, jadi misal C sisi terpanjang, kan tinggal cek apakah A^2 + B^2 < C^2. no precision error.

nah setelah jalanin itu, aku bingung, lohloh kok semua jawabanku salah? (alias sudut tumpul). kirain program checkerku salah. jadi aku coba bugfix lagi. dan masih saja. akhirnya aku coba deh bruteforce n^3 dengan program tersebut, dan dapet poinnya?!

aku coba cetak semua keluaran program bruteforce tersebut, dan kubandingin sama program optimalku, dan jawabannya beda semua. whatttt. ternyata aku salah konsep!. segitiga itu tumpul kalau TIDAK ADA garis diameter yang dapat meletakkan segitiga tersebut dalam satu daerah. yaelahh harus mikir algo dari awal (waktu: ~ 3 jam)

loh? kok ga ngerjain soal lain. iya, karena aku pikir ini soal mudah dan aku yakin pasti banyak yang AC karena observasinya simple, makanya ngotot pokoknya harus selesai ini.

ternyata algonya ga beda amat. tinggal pake aturan komplementer. jadi untuk tiap sudut kita cari brp banyak segitiga tumpul yang bisa dibuat, nah ini bisa kita cari memanfaat properti sudut keliling dan di binser jadi log(n). trus titiknya kita kombinasiin. kucoba dan AC!!! (waktu: ~20 menit)

baca D untuk pertama kalinya. main aman buat bruteforce n^2. dapet poin. trus dapet observasi ini bisa di bitmask saja yaitu simpen kemunculan tiap karakter mod 2. karena tiap indeks bisa nyumbang 1 bitmask, paling banyak ada N bitmask maka bisa disimpan di map. lalu sisanya tinggal manfaatin prefix xor dan aturan penjumlahan. kukoding dan MLE. ternyata aku meremehkan memory longlong, karena aku ngakses map masih langsung yaitu pake mp[x], ini bisa buat key baru jadi isi map bisa 52n. modif dikit, dan AC dengan memory 10x lebih hemat (waktu: ~20 menit)

Waktu sisa sejam lagi. entah kenapa selama simulasi ini aku sering banget ke toilet. ok lanjut

tinggal A tadi,nah ini aku bruteforce dulu 2^n. trus coba buat DP. sampe akhir ga ketemu, nemu sih observasinya nmun ga sempet lanjutin. waktu habis dan nilaiku 320.

---kontes selesai
setelah banyak kontes IOI style yang aku ikutin, aku selalu mengalami pola yang sama, AC 1, ngebug parah lama, terus comeback. berarti aku ini tipe "comeback style".

ya memang minggu lalu aku cukup beruntung dapat ranking 1, kali ini aku ranking 2 dibawahnya Inigo (353) dan kembar dengan Amnu. tapi aku bersyukur. soal ini juga baru semua bagiku jadi ini memang kemampuanku.

lalu seperti biasa ada main werewolf, sekarang kami pemain werewolf selalu berusaha ngikutin logatnya Refindo "ayo main werewolf". setelah puas langsung pembahasan, dan aku ekspektasi yang A itu solusinya gila taunya butuh beberapa observasi tambahan saja. mantap.

menurutku soal kuis hari ini bagus. deskripsinya pendek-pendek semua, aku suka. trus tiap soal mengcover teknik berbeda, (aku sempet approach soal A pake DnC :v). selesai pembahasan pulang cepet jadi aku tidur siang. bangun-bangun jagain laundry trus COCI deh.

ngerjain COCI dikamar...

ditemani kue bonus dari hotel :)


baca A, soal ez cuman aku mikir caranya implementasi yang efisien. pake multiset biar tinggal looping looping dan rampung dalam 3 menit.

baca B, waduh soal time waster. aku buat matrix class isi rotasi, jadi tinggal looping looping. namun aku juga haru testing macem-macem. setelah 1 jam selesai semua dan dengan Pede aku submit.

baca C, yaelah bruteforce. submit cepet AC.

baca D, greedy? tapi greedyku salah jadi skip dulu, baca E, woww inikan binser segtree biasa, kok bisa E?. bisa jadi COCI sudah lebih mudah sekarang. kodingin dan submit. kodeku ini kompleksitasnya nlog^2(n) dan n<=200000 harusnya masih 60jt operasi. sebenernya aku tau optimisasi biar jadi nlogn tapi aku pikir solusi diatas bakal ac, lagian kontesnya lagi 40 menit mau fokus selesaiin D.

akhirnya nemu solusi D, pake greedy PQ jadi kita sort trus cari optimal. namun ada suatu anomali PQku, dimana dia gamau ngepop elemen?! sampe kesel aku buat looping gini:
while(t==q.top()) {
t=q.top();
q.pop();
}
dan aku coba cout elemennya, lah infinite loop?!. aku bingung, yaelah waktu habis. nyesel sih. saya sudah nemuin solusi yang lebih baik setelah COCI, dan saya ga ada niat untuk debug ulang kode tadi dalam waktu dekat ini, jadi apabila ada yang berminat bisa coba debug: https://ideone.com/vvL0sQ (gunakan sample TC 2nya, line yang aku pake debug line 58).

dan setelah cek hasil, sangat mengejutkan. soal Cku salah, setelah kucek ternyata rumusku salah fatal aku tambahin satu karakter langsung AC, trus soal Eku TLE. memang bener segtree faktor konstantanya besar, maka aku akhirnya optimisasi jadi nlogn, dan AC. sudah jam 12.30 malam, besok ada acara outbond dan bukannya tidur, aku malah jawab soal semifinal NLC. soalnya mudah jadi jam 1 sudah selesai. tidur deh :P

QOTD
"Sedia staminta sebelum hujan"

Minggu, 15 Oktober 2017

catatan: sebelumnya aku mohon maaf aku agak lupa detail hari ini, karena kecapekan dan jadwal padat maka aku baru nulis ini hari Selasa

aku bangun pagi sangat lelah, kemaren aku tidur jam 1 dan sekarang harus bangun jam 5 karena ada acara refreshing di kebun raya. tapi ini wajib bagiku karena seminggu ini bener-bener berat. ngumpul dibawah, dikasi pisang dan air minum. mengingat pengalaman buruk sama pisang ini minggu lalu, aku langsung makan pisangnya saat itu juga.

ada 3 orang(?) yang sayangnya gaikut. sayang banget, aku prediksi ini bakal seru. seperti minggu lalu, ada acara jogging dulu. kali ini banyaknya yang jogging beneran meningkat menjadi 3 orang. sisanya termasuk aku masih jalan santai. saat sampai di kebun raya, langsung saja ke tempat "outbond"

Galang: "we tam, ini outbond maksudnya semacam kegiatan fisik atau kaya yang di bedugul?" (maksudnya flying fox)
Tama: "bedugul"
Galang: "ih kan ini kebun raya memang ada gituan?"
Tama: "kan bedugul juga kebun raya..."

ganti penjual


taunya diarahkan ke hamparan rumput kosong, dan membentuk lingkaran. yah ga kayak di bedugul.

selama outbond ini sepertinya kita masih gak lepas dari istilah komputer, beberapa kali kita menggunakan istilah tersebut selama outbond.

istirahat setelah jalan santai


ada yang inget mainan ini?
Salman bilang ini ada algonya loh

Nah sebelum mulai acaranya, kita membentuk lingkaran. aku liat ada banyak sampah botol jadi aku ngingetin temen-temenku jangan dong buang sampah. nah ada yang angkat bicara akhirnya

X: "Jangan dong buang sampah disini..."
Aku: (dalam hati) "mantap ada yang peduli juga"
X: "Ketahuan dong kita!"
Y: "Ampun 2002, udah 15 belom?"

trus ada semacam tim gitu yang bakal mimpin acara outbondnya. pertama ada games "barisan kepo" yaitu kita buat baris yang terurut berdasarkan suatu hal.

ronde satu berdasarkan nama lekiksografi
ronde dua berdasarkan tanggal lahir
ronde tiga berdasarkan jarak terdekat ke Bogor. nah disini terjadi beberapa perdebatan karena pengetahuan geografi kita gak semuanya memadai (aku sendiri terakhir dapet geografi saat SMP)
Bukan aku: "Ih Bali kok di depannya Sulawesi, bukannya Bali jauhan?"

trus panitianya nanya, habis ini masih mau kepo gak? mau dibariskan berdasarkan apa lagi?
"nama bapak" kata seseorang.

best couple P1 2018

trus selama outbond Akbar di "bully" terus, ga ngerti dah kenapa. biasanya sih aku menengahi namun karena ini outbond seneng-seneng maka aku ikut-ikutin. contoh:

Panitia: "semua sudah saling mengenal kan?"
(semua) : (melihat Akbar) "yang itu belom kenal"

(ada yang ditunjuk panitia untuk coba nyebutin temen temennya)
Panitia: "Mulai dari kanan ya..."
(yang ditunjuk) : "Richard, ... , Yoga,... "
 (ketika giliran Akbar yang disebut)
(yang ditunjuk) : "itu gak pernah kelihatan"

Panitia: "kenapa sih Akbar di bully terus?"
(beberapa) : "soalnya Akbar fullscore"
(panitia percaya dan mulai memberi kata-kata bijak, seperti contohlah Akbar. ngakak).

selesai baris kepo, lanjut games-games selanjutnya. ada balap sarung yang aku salah denger menjadi balap karung. aku ngaku deh aku ga pernah balap karung seumur hidup makanya girang saat denger "balap karung". trus ada memindahkan karet dengan pipet.

lomba memindahkan karet.

jadi ada 3 tim. tim yang menang dapet yupi seorang satu. nah Akbar timku kepergok ambil yupi dan disuruh balikin. untung aku ga ketauan...

selanjutnya game "memindahkan bola pingpong dengan kepala". nah ini tidak sesusah kelihatannya. saat detik-detik terakhir, karena mindahin 1 bola terlalu mudah, dan karena alurnya macet, maka mindahinnya dua bola sekaligus.

detik-detik pemindahan dua buah bola pingpong:




trus ada game "bububu cacaca" yaitu semacam buat gerakan nyambung. kalau grupku kalah sudah sepakat Hocky yang dihukum, yaitu gaboleh ketawa.

grupku kalah, langsung 2 orang yaitu Faisal dan Faishol maju membuat atraksi agar hocky ketawa.

jadi teringat acara sekolahku...

terakhir ada game sambung gambar. jadi tiap orang nyumbangin satu coretan, nanti terjadilah gambar terakhir
hasil akhir gambar.
lalu Hocky diminta ngartiin itu kira-kira gambar apa. dia bilang itu "beruang cupid". disuruh peragain deh. selama games ini juga pernah kita mainin games "bos berkata", versi indonesianya simon says. aku lupa ini kapan dimainninnya.

ya kan aku foto pake HPku, jadi tentunya adegan yang ada akunya tidak bisa difoto. maka beberapa foto ini diambil oleh panitia. deskripsi:
kiri atas: lomba balam sarung
kanan atas,kanan bawah: lomba bos berkata
kiri bawah: no homo

lalu disuruh ngisi kertas berisi ciri-ciri kita nanti bakal ada yang nebak. aku sih kalau mau gampang tulis saja oneline "ketua kelas". namun biar greget aku tulis
"ganteng"
"berkumis"
"rank bawah saat hari rabu"
harusnya sih sudah bisa karena aku perhatiin yang berkumis cuman aku doang.

nah ini dikumpulin trus dimasukkin kedalam balon. masing-masing dikasi 1 dan kita tugasnya mecahin balon orang lain dan nyuri kertasnya. pada awalnya semua disuruh ambil jarak. saat mau-mau mulai, beberapa kali terdengar kata
"Akbar siap-siap"
Sepertinya Akbar harus kuat lari karena bakal diserbu. akusih milih nyerang yang nyerang Akbar, pasti lengah.

ya bener saja sih, saat orang lagi nyerang mereka ga nyadar tiba-tiba aku nyerang dari 90 derajat dan dapet. total aku dapet 2 kertas.

trus karena masing-masing harus dapet 1, maka 1 kertasku aku sumbangin ke Nuril. nah tibalah puncak acara outbond ini. tebaklah siapa yang ada di kertas kita, dan baru dapet makan siang. aku dapet kertas berisi
"ganteng"
"seksi"
"pendek dan agak berisi"
"username TLX 5 huruf"

awalnya aku bingung karena aku liat gaada cowo di pelatnas ini yang seksi. maka pasti orangnya gaje. aku liat yang pendek dan agak berisi, seketika langsung tahu ini siapa. ini Hocky!. sialnya dia saat aku tebak gamau langsung ngaku. sayangnya ga semua dapet nebak karena waktu outbond habis. sayang gadapet tahu punyaku berhasil ditebak gak.

Peserta pelatnas 1 TOKI 2018

Selama outbond ini kami ketawa-ketawa saja :D. ini memang yang kami butuhkan untuk melepaskan diri dari kejenuhan.

setiap hari minggu, dikasi uang 100 rb untuk beli makan. siangnya aku makna yang simple aja, hokben. aku sebenernya udh ngincer jus mangga yang selalu rame dibawah, aku simpen buat malem saja. siangnya aku tidur siang.

malemnya saat bangun langsung cari makan. aku ngajak Tama dan Alvin. Tama saat kugedor pintunya lagi mandi. jadi ditungguin. makan malamnya aku sama Alvin misah. aku sama Tama makan di pizza hut. pesen pizza baru. uenak banget pizzanya. pesen yang large habis berdua. Tama katanya gak makan dari siang.

biasa sekal menghindar kalau difoto

memang aku sama Tama sengaja ga pesen minum karena pingin beli jus mangga tersebut. kami berspekulasi itu stand cuman buka 3 bulan dalam setahun karena mangganya langsung dipotong disana. aku pikir sih harganya bakal sama kaya chattime, namun diluar dugaan, harganya 50 ribu! worth it lah harusnya, aku suka mangga.


worth it?

trus kita berteori, kalau banyaknya yang AC suatu soal menentukan apakah soal tersebtu akan dipake lagi atau gak tahun depan. aku bilang "bisa aja gini, kalau aku ac berarti soalnya mudah, kalau aku ga ac berarti soalnya susah gausah dipake lagi". trus Tama balas kalau hasilnya Inigo yang dipake soal B kuis tadi bakal dianggap susah dan ga dikeluarin lagi, maka cara tersebut ga rasional.

sayangnya, jus mangga yang aku beli rasanya agak asem. tapi setidaknya aku tahu gimana rasanya. sampe di hotel Tama dibawain makaroni dan dibagi bareng-bareng karena ukurannya. kebetulan ada Ariell dan Fausta juga.

QOTD
"Sedia stamina sebelum hujan"

Penutup minggu ini

sebelum pelatnas, aku denger-denger ada yang namanya kuis. dari kedengerannya sih memang, awalnya aku pikir ini semacam seru-seruan. namun ternyata setelah ngalamin sendiri,  memang seru maut. Adik kelasku pun mikir demikian.
"kak sabtu ngapain sih acaranya"
"ada kuis trus bebas"
"oh CUMAN kuis?"
ya tahun lalu aku juga dibuat penasaran dengan istilah-istilah pelatnas. masalah performa, minggu ini performaku fluktuasi, kadang bisa 400, kadang cuman AC 2. karena topiknya tingkat kesulitannya fluktuasi juga :(. tapi ya aku masih berharap, mudah-mudahan bisa lolos pelatnas 2.

Comments

Popular posts from this blog

Menjadi Maba yang Penuh Ketidaktahuan

UI baru saja selesai UTS tadi, dan UTSnya sangat greget. Postingan sebelumnya sebenernya hanya untuk bilang kalau sekarang aku punya domain, ini postingan yang sebenernya. Jadi kali ini aku bakal buat nyeritain gimana aja sih selama 3 bulan pertamaku kuliah di UI.  Catatan: bukan berarti bakal ada update tiap 3 bulan ya, wkwkwk. Kurang lebih postingan ini jadi karena sangat banyak kegiatan-kegiatan "orientasi" yang aku alami dan sudah terlalu banyak bahan. Aku yakin nanti kegiatan perkuliahannya bakal membosankan dan mungkin saja bakal update 1x pertahun. Kamus: Maba = Mahasiswa Baru. Pacil = Fasilkom. Kutek = Kukusan Teknik (daerah di belakang UI) Kukel = Kukusan Kelurahan (daerah di belakang UI) Detos = Depok Town Square (Nama suatu pusat pembelajaan di Depok) kuis = ulangan PA = Pembimbing akademis (Paling mirip dengan "wali kelas" di SMA) KAMABA Singkatan dari Kegiatan Awal Mahasiswa Baru. KAMABA  dibagi me

Mengikuti ICPC 2019 Bagian 1: Jakarta Regional

Halo, sudah lama tidak berjumpa! Semester ini aku terlalu banyak kegiatan jadi lupa ada blog ini. Jadi, liburan semester ini bakal ada banyak blog-blog yang bakal keluar ^_^. Kali ini, aku bakal nyeritain pengalamanku mengikuti ICPC lagi tahun ini. ICPC,  The International Collegiate Programming Contest  adalah lomba programming yang setiap tahun diadakan. Tentunya aku ikut lagi dong. Apalagi, sudah dibekali ilmu dari matkul TKTPL saat semester 2. Peminat CP di UI lumayan banyak, jadi diadakan seleksi untuk masuk tim intinya. Aku lolos :D. Pembentukan Tim Aku gak perlu mikirin mau ngetim siapa, karena komposisinya sudah ditentukan oleh Pak Denny. Aku dapat tim bareng Kak Norman dan Budi. Aku lumayan seneng dengan timku. Tahun lalu, aku ngetim Kak Norman juga jadi sudah tahu kemampuan masing-masing. Budi, aku sudah sering ketemu saat ngajar di pelatnas 2 dan pelatnas 3 dan skillnya jago, Aku mikirnya dia bakal ngecarry kita, hehe. Oh, kita kebagian regional Kuala Lumpur. Jad

Jurnal Fasilkom Semester 6: Konteks

Halo lagi, Ketemu lagi di blog semesteran ini. Kali ini aku mau ceritain gimana sih aku menjalani semester 6 di Fasilkom UI. Kondisinya masih pandemi, jadi kegiatan perkuliahan masih full online. Pada semester ini, kalian akan ketemu dengan satu-satunya matkul di Fasilkom yang kuambil di tiga semester . Sebelum-sebelumnya kegiatanku selalu sibuk yah :| Semester 3 ngambil 22 sks + 3 organisasi + asdos Semester 4 ngambil 22 sks + PIC compfest + asdos Semester 5 ngambil 17 sks + part-time Bareksa + asdos Waduh semester 6 sibuk apa aja nih? -_-, semester 6 ini aku: gak ngambil sks banyak (dibawah 20) gak part-time/full-time gak ikut kepanitiaan lagi, apalagi jadi ketuanya gak ikut kegiatan external "Wah Galang mau santai?" tujuannya begitu :( Pingin sekali-sekali ngerasain gabut jadi aku menghindari hal-hal yang potensi sibuk, aku bahkan resign dari part-timeku karena ingin fokus akademis.  Sayangnya sepertinya aku magnet kesibukan, berasa gak tenang aja kalau ada waktu gabut. Ba