Senin, 25 Agustus 2014

One Week Left

Ngeliat hari, udah hari senin. Tanggal ? 25 Agustus. Wah, gak terasa OSN udah tinggal seminggu lagi :| entah apa yang sudah saya pelajari dalam rentang waktu sebulan ini, rasanya saya terlalu banyak membuang waktu. Walaupun rasanya harus berlatih, ujung-ujungnya selalu berpikir "ah, besok aja nyari soalnya" dan akhirnya jarang sekali latihan. Mungkin juga karena rasa agak jenuh karena terlalu sering mengerjakan soal, saya juga tidak tahu :| Sekarang, saya mau cerita untuk melengkapi post saya sebelumnya, sekarang tentang PJJ terakhir saya sebagai peserta :) Beware : banyak nama samaran pokemon

Anyway, setelah pengumuman kelolosan ke nasional, bidang komputer seperti biasa mengadakan PJJ. Untuk PJJ tahun ini karena temanya Pokemon, setiap peserta dan supervisor mendapat pokemonnya masing-masing. Karena yang tahu tentang pokemon masing-masing adalah supervisornya, jelas saya menunggu pemberitahuan dari supervisor saya. Oiya, supervisornya ada yang cepat menghubungi, ada juga yang tidak. Kebetulan, supervisor saya tidak terlalu lambat menghubungi. And to my surprise, dia merupakan orang yang sudah cukup saya kenal, yaitu Miltank (hint : lebih muda dari saya). Saya lalu diberitahu kalau pokemon saya Feebas, pokemon yang baru unyu kalo udah evolve. Selain itu, nampaknya disengaja juga ada teman saya yang sering di-joke-kan homoan saya diberi pokemon Magikarp, pokemon yang juga baru ganas kalo udah evolve. Habis itu, karena excited saya ngubah PP jadi Feebas :p

Setelah PJJ dimulai, sebenarnya saya cukup terkejut karena yang dikerjakan sebenarnya Training Gate di TLC, hanya saja dalam bentuk kontes. Selain itu, kami hanya mengerjakan sampai Bab 6. Karena tahun lalu saya sudah merasakannya, jadi sekarang rasanya biasa aja :| Kebetulan, saat itu saya sering (sekarang juga masih sering) chatting sama Emolga. Karena supervisor saya sering sibuk, jadinya ketika saya naik Bab Emolga yang membukakan Bab selanjutnya. Terima kasih Emolga ^^

Kemudian, ada satu hal yang benar-benar membedakan PJJ tahun ini bagi pribadi saya sendiri. Tahun ini, entah kenapa saya menemukan beberapa soal yang janggal pada TC-nya. Pertama kali, ketika saya mengerjakan soal Pesta Bebek di Bab 4. Ketika saya menggunakan lower_bound, hasilnya WA. Ketika saya menggunakan upper_bound, hasilnya AC. Setelah mengassert sesuatu, ternyata ada TC yang tidak sesuai batasan soal x( Setelah itu lapor Emolga, dan akhirnya TC diupdate. Setelah itu, Emolga mengumumkan di grup OSN tahun ini untuk melaporkan soal yang deskripsinya kurang jelas atau TC kurang kuat. Alhasil, setelah "berburu", saya menemukan beberapa saat itu, dari yang deskripsinya kurang tepat, TC hanya TC sample, bahkan saya pernah mensuggest untuk mengubah batasan soal agar dipastikan peserta memahami caranya ketika mengerjakan soal tersebut. Oiya, jika kamu orang yang ada di grup OSN tahun ini, semua ralat itu tampaknya saya yang lapor :p Tapi ada satu ralat yang malah bikin esensi soalnya kurang tepat buat Babnya, thanks Treeko for noticing :)

17 Agustus 1945, diadakan TO 1 PJJ tahun ini. TO ini bertujuan agar peserta bisa memahami sistem pada saat OSN nanti. Sebelum kontes, saya minta tolong agar mekanismenya diperjelas sekilas, agar peserta tidak telat tahunya, seperti tahun lalu bahkan sampai TO 2/3 ada yang masih tidak menggunakan token. Oiya, yang membedakan sistem tahun ini dengan tahun lalu tampaknya hanya pada header di soal, pada tahun lalu headernya hanya berupa "Subsoal x" dengan x nomer subtask yang dihadapi. Sekarang , header berisi nomer subtask-subtask yang batasannya sesuai dengan input tersebut.

Anyway, kontes dimulai! Soal-soalnya :

  1. Equation (Brute Force)
  2. Pokeshow (Greedy)
  3. Dunia Pokemon (Math)
  4. Baby Emolga (? Agak DnC)

Seperti biasa, saya baca semua soal dulu. Setelah baca semua, saya coba mengerjakan dari P3. Setelah utak-atik sana-sini, saya dapet O(1) yang harusnya bisa AC sampai subtask terakhir. Setelah saya submit, saya token, ternyata hasilnya 0! Tentu saja saya bingung, karena setelah itu saya submit Brute Force-nya dan tetap 0. Akhirnya, saya putuskan untuk mencoba soal lain. Saya lalu mencoba P1, yang karena batasan yang kecil langsung saja saya hajar Brute Force. Setelah ditoken, hasilnya 24, tapi WA :| Ternyata saya salah tulis variabel, ada yang harusnya " i " saya tulis " j ". Setelah saya betulkan, langsung 100. Karena belum dapat ide P3, saya coba P4, hanya bisa dapat ide supaya mendapat nilai 30 :| Alhasil, saya kembali ke P3 dan membuat asumsi-asumsi liar. Setelah habis 7 token, saya menemukan sesuatu yang luput dari awal saya membaca soal. Setelah itu, saya utak-atik lagi rumusnya, temukan O(1), lalu submit. Akhirnya dapat 100 :D Karena belum ada nyoba P2, akhirnya saya loncat ke soal itu. Setelah baca beberapa kali, saya conclude kalau itu salah satu soal Greedy yang klasik, sehingga saya cepat saja membuat codenya. Pertama kali nyoba, WA karena salah ngerti, yang dicek interval bukan tiap waktunya :| Setelah ngedit itu, submit, 100 :) Saya tidak berhasil mengerjakan P4, karena pergi ke masjid dan mencicil PR yang baru saya ketahui siangnya.

Pulang dari masjid, saya chat sama Psyduck. Karena scoreboard resmi belum diliris dan kepo, saya nanya Psyduck scorenya berapa. Tapi dia gak mau jawab, bilangnya scorenya hina, malah suruh saya bilang duluan score saya berapa :| Sebelum bilangin score saya, ternyata scoreboard resminya sudah dibuka. Dan hasilnya:

Score saya 330.
Score Psyduck 331.
Bangke.

Anyway, Saya berujung di rank 3 saat itu, ada satu orang yang nilainya 370 :| Setelah itu saya nanya Psyduck cara mengerjakan P4, dan ternyata caranya mudah, menyesal sekali pas itu gak bisa ngerjain :|

Setelah itu, ternyata ada panggilan buat pelatihan di LOPI. Jadinya, gak masuk sekolah lagi, entah senang atau takut ketinggalan pelajaran sekarang udah gak tau deh. Tapi pas pelatihan di LOPI juga karena gak ada teman yang GG kayak tahun lalu (baca : Tico), entah kenapa saya merasa kurang bersemangat. Kerjaan saya di sana juga kebanyakan ngerjain soal, kalo udah buka cookie clicker, atau gak nyari soal CF yang rada menarik, itu juga jarang-jarang :| Intinya saya tidak tahu apa yang saya lakukan di sana :|

Nah, yang jadi masalah, adalah TO 2 yang diadakan hari Sabtu. Hari Sabtu kemarin, kami harus pindah tempat ke suatu wisma yang ada di Pondok Gede. Saya takut tidak bisa mengerjakan TO, jadi harap-harap cemas supaya perginya dipercepat atau ditunda. Ternyata, perginya rada molor sekitar setengah jam, jadinya saya masih sempat baca soal di hotel dengan WiFi-nya. Soal-soalnya :

  1. Pokemon Battle (bingung jelasinnya lol kayak DP juga kayak greedy)
  2. Depresi (Flood Fill)
  3. Kandang Tauros (Geometri)
  4. Shazam! (Kreatif kah, lupa Psyduck 100 pake BF + greedy)

Naasnya, saya salah baca soal, dan membuang waktu cukup lama. Setelah di bus, karena takut modemnya gak bisa dipakai, saya mencoba semua WiFi yang sinyalnya sampai, namun tidak ada yang bisa saya pakai :| Akhirnya, saya pakai modem, dan untungnya sinyalnya lumayan bagus. Setelah itu, saya coba submit P1, dan ternyata hasilnya 0! Shock. Beberapa kali begitu, akhirnya saya coba bikin N^2 nya. Hasilnya 50, jadi aslinya ide saya tidak salah, karena yang hasilnya 0 itu sebenarnya N^2 yang dioptimasi jadi N log N saja dengan suatu observasi. Akhirnya, saya mencoba mengerjakan soal Depresi. Saya kira awalnya soal ini seperti soal gila dari OSN 2012, Membaca . Setelah saya baca lagi, ternyata soal ini mirip dengan UVa - Ancient Message. Hanya saja, yang cukup membuat saya sebal di soal ini adalah kasus yang agak identik, yang saya pikir dengan kasus "donat" dan "roti". Setelah saya buat, submit, hasilnya 30 ! Aneh. Karena gak dapet bugnya di mana, saya kembali ke P1.

Karena pusing di bus, saya cukup kesulitan dalam berpikir di P1. Setelah debug sana-sini, saya menemukan kesalahan fatal. Karena tidak kuat berpikir, saya nambahin yang aneh-aneh di code. Pada titik ini saya gak kuat buat submit dan men-token saking pusingnya, jadi saya minta tolong teman saya yang kebetulan baru saja bangun tidur. Waktu teman saya lambat mencari (manual) nama file yang mau disubmit, saya bilang "Ok, ketik p Ok", habis itu untungnya dia tau (entah bagaimana) cara men-tokennya. Alhamdulillah, dapet 100 :') Setelah itu, kondisi batere laptop tinggal untuk 10 menitan, jadi saya sleep. Setelah bengong dan mikir beberapa saat, saya sadar kalau sebenarnya code saya di P2 itu ada yang karena lupa ngecek, jadi ngakses index array out-of-bound :| Pada saat ini, laptop saya nggak bisa dinyalain dari sleep! Tidak sabar, saya matiin paksa terus nyalain lagi (jangan ditiru). Waktu laptop saya tersisa sekitar 5 menitan ! Buru-buru, saya langsung ngedit. Setelah saya edit, karena merasa udah agak enakan, saya submit. Kebayang lah rasanya begitu dapet 100 dengan batere laptop yang sisa untuk 1 menit :'D 

Karena udah gak mungkin untuk ngerjain apa-apa, saya istirahat sampai kami sampai di tujuan. Oiya, waktu itu di bus disetel lagu dangdut yang sering saya dengar di rumah sama lagu Que Sera Sera, lagu yang nadanya enak dijadiin lagu iklan :)) Setelah sampai, karena waktu kontes masih setengah jam, saya putuskan untuk nyampah di P4. Setelah buru-buru download input file, saya bikin program generator output filenya yang ngejalanin input apa adanya ditambah pake KMP. Udah gitu, masih ada salah nulis nama filenya di freopen lagi :| Waktu kontes sisa 5 menit, saya buru-buru submit. Awalnya janggal karena sample case saya WA, tapi setelah ditoken ternyata 47. Btw, kemaren saya baru sadar kenapa sample casenya WA, ternyata yang saya submit shazam_sample.in, bukan shazam_sample.out di zipnya :p

Malamnya, ngobrol-ngobrol sama Emolga sebelum scoreboard resmi dibuka, bisa disimpulkan kalo TO 2 ini lebih membantai dari TO 1. Scorenya pokoknya gak gede-gede banget. Setelah scoreboard resmi dibuka, ternyata saya bisa rank 2 :'D Seperti biasa kalah dari Psyduck, yang bisa AC P4 :'(

Untuk menutup post ini, semoga minggu depan bisa terjadi pertempuran yang seru di OSN 2014. Untuk peserta, ayo semangat kerjain PJJ-nya, pasti berguna banget buat OSN.Selain itu, ingat kalau OSN bukan akhir dari segalanya, bisa jadi OSN ini merupakan awal mula dari perjalanan baru yang entah di mana ujungnya :) And for some random sentence, pengen ngeblog CP cuma gak enak ngeblog di sini hiks.
Categories: ,

2 komentar:

  1. bisa dijelasin kak, Pokeshow yang greedynya gimana? makasih kak

    BalasHapus
  2. Main ideanya aja ya, untuk tiap stand lakuin interval covering

    BalasHapus