
Olimpiade Sains Nasional 2017
Hai semua!
Kali ini aku akan ceritain pengalaman ku selama di OSN 2017 yang diadakan di Pekanbaru, Riau. Cerita ini akan aku bagi jadi beberapa page yang setiap page-nya akan membahas hari yang berbeda. Maafkan aku karena baru nge-post sekarang, soalnya kemaren sibuk banget. Sibuk cari pacar
Tahun ini, SMAN 1 Sidoarjo berhasil mengirimkan 3 orang ke OSN 2017 dengan bidang yang berbeda-beda. Bidang astronomi a.n. Hasanain Arrosyid, geografi a.n. Alfin Febrian B., dan komputer a.n. Muhammad Faishol A. M. (me).
![]() | ![]() |
Perwakilan SMAN 1 Sidoarjo (dari kiri: Me, Hasanain, Alfin) | Kontingen komputer Jawa Timur di OSN 2017, Riau (dari kiri: Me, Ammar, Ghozi, Refindo, Moris, Grace) |
Untuk bidang komputer sendiri, Jawa Timur berhasil mengirimkan 7 orang yang terdiri dari 6 siswa dan 1 siswi. Kok di foto cuma ada enam? Iya, karena waktu itu Andrew udah ada acara dan dia buru-buru jadi gak ikut foto. Untuk detail kontingen komputer Jawa Timur bisa dilihat pada tabel.
NO | NAMA | ASAL SEKOLAH |
---|---|---|
1 | Gracesilia | SMAK Petra 2 Surabaya |
2 | Raja Moris | SMAK Petra 5 Surabaya |
3 | Andrew Theodore Tjondrowidjojo | SMAK ST. Louis 1 Surabaya |
4 | Muhammad Refindo Azhar | MAN 3 Malang |
5 | Muhammad Faishol Amirul M. | SMAN 1 Sidoarjo |
6 | Ammar Alifian Fahdan | SMAN 1 Trenggalek |
7 | Ahmad Ghozi Fidinillah | SMPN 1 Jember |
Kayanya udah cukup deh…
Selamat menikmati ceritaku. Kalo ceritanya garing… syukuri dan nikmati saja.
Day 1 - Naek Pesawat Yeeyy
Tahun ini, pemberangkatan kontingen Jatim ke Riau dibagi menjadi 2 kloter. Kenapa? Mungkin karena tiket untuk satu pesawat kurang, jadi dibagilah menjadi 2 kloter. Untuk kloter pertama, pesawat berangkat pukul 06.30 WIB-an. Kloter kedua, pesawat berangkat pukul 11.30 WIB. Untungnya aku kebagian kloter kedua. Jadi aku gak perlu bangun jam 04.00 WIB, yang mana itu dilakukan oleh anak-anak yang berangkat dikloter pertama (Semangat kloter pertama!!!).
To be honest, ini adalah pengalaman pertamaku naik pesawat…
Maklum anak kampung, biasanya cuma bisa naek kereta api. Makanya waktu naek pesawat sedikit takut :v
Pesawat kami take off dari Bandara Juanda, Sidoarjo (ini bandara letaknya di Sidoarjo tapi kodenya SUB -_-) pukul 11.30 WIB dan sampai di Pekanbaru, Riau pukul 14.45 WIB kalo gak salah. Sebelum pesawatnya landing di Riau, pesawat kami muter-muter dulu di sisi selatan bandara karena nunggu urutan landing (gitu kata pilotnya, pengen ngebuktiin sendiri tapi…).
Selama di pesawat sebenernya gak ada yang aneh, cuman waktu di pesawat aku MABUK sehingga aku hanya bisa terdiam tanpa kata. Ditambah lagi, aku duduk di tengah-tengah. Sehingga agak susah buat nyari sandaran (sandaran hidup… eehhh).
Setelah pesawat landing, kami nunggu bagasi dulu sih… (ya iyalah, masa ditinggal). Setelah itu kami dikasih semacam selempang (tapi cuma dikalungin, gak diselempangin… atau emang namanya selempang(?)) dan kayanya itu simbol penyambutan tamu (Sok tahu mode on, kalo ada yang tahu komen ya!). Setelah itu, kami disuruh foto bareng se-Jawa Timur.
![]() | ![]() |
---|---|
Kontingen OSN 2017 Jawa Timur Kloter Pertama | Kontingen OSN 2017 Jawa Timur Kloter Kedua |
Setelah itu kami keluar bandara dan sempet nunggu bentar buat naik bus yang akan ngantar kami ke hotel masing-masing tapi gak lama. Beberapa menit perjalanan, akhirnya kami sampai di hotel dan kebetulan ke hotel komputer dulu (untuk pertama kalinya komputer didahulukan… Yeeyy). Setelah itu, kami nurunin semua koper dan masuk ke hotel.
Waktu sampai di hotel ngapain? registrasi terus dapat kamar (peace.. hahaha)
Aku dapet kamar nomor 305 (ini kamar angker, entar aku bakal jelasin) bareng sama Zainal anak Bangka Belitung. Awal aku masuk kamar dan lihat dia, kukira anaknya diem banget (ternyata… emang diem kayanya, kecuali dipancing dulu..). Dengan lapang dada, aku harus ambil kasur yang deket jendela, karena dia sudah ambil yang deket pintu.
Beberapa menit dikamar, aku kepo apakah Ariel dan Fausta udah sampe apa belum? Jadi aku chat mereka, ternyata mereka udah sampe duluan. Akhirnya ku ajak mereka dan si Andrew Fanggara untuk ke kamarku. Peristiwa inilah yang mengawali keangkeran kamarku :’(
Di hari itu, kita bahas semua anak yang kemungkinan bakal jadi medalis… Jadi kita serasa jadi cenayang.
Setelah beberapa tahun, akhirnya mereka semua balik ke alamnya masing-masing, karena diawali Fausta yang keluar duluan… (akhirnya Fausta pergi…Aseekk).
Sekitar jam 17.30 WIB an, si Ariel balik lagi ke kamarku. Dia ngajak aku buat ngambil souvenir yang waktu registrasi awal tadi belum diambil sekalian makan malam. Ternyata, restorannya belum dibuka, malah ketemu kak Reynaldo di lobby lagi bahas soal Pra-OSN DKI 2017 sama Kak Tama dan Kak Rama Bena yang keduanya kontingen Bali. Beberapa menit nimbrung di situ, kita dikasih tahu sama seseorang kalo makanannya udah siap. Akhirnya aku, Ariel, sama Zainal pergi makan. Setelah itu, kami naik ke lantai 2 buat ambil souvenir. Disitu dapet tas, bolpoin, penggaris, buku panduan, sama baju sponsor. Kata Ariel, tasnya lebih cocok buat “CEWE”. (Ariel, aku sudah mengutarakan pendapatmu. Aku baik bangetkan?)
![]() |
Penampakan tas OSN |
Ditengah perjalanan balek ke kamar, aku ketemu sama Fausta dan dia ngajak aku makan. Karena dia merasa gak diajak, akhirnya dia nyalahin aku… padahal salah dia sendiri lelet :P (ampuni aku Fausta atas bully-an ku ke kamu di post ini)
Karena udah makan dan ambil souvenir dan si Ariel balik ke kamarnya. Akhirnya aku juga balek ke kamar bareng Zainal dan aku tidur duluan karena waktu itu gak tau harus ngapain dan persiapan buat pembukaan besok.
Day 2 - Pembukaan Yang Membuatku Terharu
Hari ini jadwalnya pembukaan di Gelanggang Remaja Pekanbaru (Emang namanya gitu) kemudian dilanjut dengan technical meeting di Politeknik Caltex Riau (PCR).
Pembukaan sendiri jadwalnya pukul 08.00 - 12.00 WIB. Berhubung jarak hotel ke tempat pembukaan itu cukup jauh jadi kami harusnya berangkat dari hotel pukul 07.30. Tapi kenyataan berkata lain. Kami baru berangkat pukul 07.50 an. Alhasil sampai disana telat dan kami langsung mencari tempat duduk. Beberapa anak komputer (75% nya lah) dapat tempat duduk yang sangat indah termasuk aku. Awalnya kukira pembukaan sudah dimulai ternyata belum karena tamu pentingnya belum datang.
![]() |
Posisi yang sangat indah |
Pembukaan dimulai dengan tari makan sirih, kemudian dilanjut dengan pemutaran video OSN 2017. Pemutaran video ini membuatku terharu, karena sangat indah videonya. Gimana bisa ngelihat, posisi kami aja di samping layar -_-
Acara dilanjut dengan Mars OSN yang gak kedengeran jelas… Baru sambutan dan pembukaan secara simbolis oleh semua tamu penting tadi. Tahun ini pembukaan nya pake pemukulan rebana. Jadi agak kacau dengernya tapi lebih masuk akal dan gak neko-neko… hehehe
Setelah pembukaan ada pertunjukan tarian. Jadi beberapa tarian dari daerah di seluruh Indonesia itu di medley-in terus ditutup dengan tarian dari Riau.
Setelah pembukaan, kami keluar dan ketemu Bu Inggriana Liem lagi sama SC-nya IOI kata beliau (kalo gak salah denger). Jadi kami diajak foto bareng semua anak komputer di pintu masuk utama gelanggang remaja itu. Baru habis itu kami melanjutkan perjalanan ke PCR.
![]() |
Hayoo.. aku yang mana ??? |
Sesampainya di PCR, awalnya kami diarahkan ke amphiteater, terus ke auditorium PCR. Disitu kami dikasih pengarahan dan user-pass buat login hari itu. Kemudian dilanjut dengan sesi latihan. Kebetulan aku kebagian ruangan nomer 1. Ruang ini enak, soalnya suhu AC (Air conditioner, bukan accepted) nya gak terlalu rendah.
List soal practice session:
0. Hello World! (ad-hoc)
A. Batik Riau (prefix sum (?))
B. Bermain Dengan Sudut (interaktif, ada yang bilang binser, ada yang heap sort)
C. Memindahkan Files (output-only, ad-hoc(?))
Seperti biasa, aku buka semua soal di new tab. Kemudian aku baca satu-satu semua deskripsinya. Sepertinya soal 0. Hello World! dibuat biar semua peserta tetep nyoba sistem OSN meskipun males. Soalnya kebanyakan peserta itu gak nyoba waktu simulasi. Jadi, nilai practice session gak bisa jadi patokan buat ngeliat saingan.
Awalnya aku coba ngerjain soal A, terus muncul di pikaranku sebuah pertanyaan hingga menghasilkan klarifikasi ini.
![]() |
Dan setelah kupikir, ternyata soal ini bukan nyari kombinasi tapi cukup prefix sum. Aku coba coding dan akhirnya ku submisi. Ternyata dapet verdict WA. Bingung… karena menurutku udah bener. Ku coba cari, ternyata emang nge-bug, terus ku submisi lagi. Tetep WA, tapi yang tadinya 0 sekarang 62. Coba cari bug nya, akhirnya A. Batik Riau dapat Accepted.
Setelah itu, aku buka game interaktifnya tapi kok hitam. Setelah beberapa menit ternyata muncul announcement kalo nge-load gamenya lama. Akhirnya aku tinggal ngerjain soal “Hello World” karena itu yang paling gampang diantara yang lain.
Habis itu, coba kerjain output-only, tipe soal yang aku suka. Baca deskripsi soal lagi nemu pernyataan “total ukuran berkas yang ingin dipindahkan adalah $M \times K$ KB” yang artinya cukup pake BF. Akhirnya bikin program BF buat soal ini, habis itu tinggal nunggu programmnya selesai dan submisi.
Nah waktu aku bikin BF ini, tiba-tiba listriknya mati. Sehingga memancing keributan seluruh peserta karena takut codingan nya hilang. Setelah listriknya nyala lagi, aku sempet bingung. Aku bingung nyari tombol powernya dimana.
Ternyata diatas CPU nya (gak biasa lihat tombol power diatas CPU) dan sebelahku juga bingung gimana nyalain komputernya…(“anak KOM kok gak bisa nyalain komputer,” itu yang terlintas dibenakku kalo aku tanya cara nyalainnya ke pengawas)
Setelah nyala, akhirnya ku lanjut bikin program BF nya. Beberapa menit setelah program ini berjalan, aku submisi outputnya dan C. Memindahkan Files AC.
Tinggal problem B, aku nyoba mainin gamenya kali aja nemu ide dari situ. Nah, dari game ini aku cuma nemu kalo ini bisa pake binser. Tapi aku bingung, gimana cara nyari sisanya. Alhasil aku hanya bisa dappetin 30 poin untuk soal ini. Itupun dari game doang.
Setelah practice session selama 2 jam, kami diarahkan ke amphiteater PCR. Terus balik ke hotel yang mana lama pulang itu lebih cepet daripada berangkat tadi. Sungguh aneh…
Sesampainya di hotel, aku langsung ke kamarku. Beberapa menit aku istirahat sejenak di kamar. Ehhh ada bunyi bel dan aku sudah tahu siapa.
Tentu saja Fausta (Kamu yang dateng dulu kan ya? aku lupa… hahaha), kemudian disusul Ariel sama Andrew F. Mereka menjadikan hal ini sebagai kebiasaan selama di OSN 2017. Itulah kenapa kamarku jadi kamar paling angker.
Oh ya.. aku lupa. Jadi waktu makan malam, kami dikasih tau sama panitia kalo ambil goodie-bag di tempat ambil tas OSN kemaren. (Aku lupa sebenernya hari keberapa ambil goodie-bag nya)
![]() |
Goodie-bag OSN 2017. Isinya sebenernya adalah kaos, buku legenda, sama brosur wisata. |
Day 3 - The Real OSN Day 1
Setelah sarapan, kami harus segera berangkat ke Politeknik Caltex Riau (PCR). Sesampainya kami disana, kami dipanggil satu-satu sambil dibagikan nomor duduk dan ruangan.
Ujian OSN Komputer hari pertama dimulai pukul 08.40 WIB. Untuk mengantisipasi jika terjadi masalah teknis, maka kami diberi hardcopy soal hari ini. Seperti tahun-tahun sebelumnya, diberikan 3 soal yang harus diselesaikan dalam 5 jam. Dua soal batch dan satu interaktif.
List soal hari ke-1:
A. Pertahanan Pekanbaru
B. Menukar Kotak
C. Daratan dan Es
Saat kontes dimulai, aku langsung buka semua soal dan game interaktif yang paling utama. Aku takut loadnya lama, jadi sambil nunggu load bisa kerjain yang lain. Setelah baca semua soal, hanya soal A yang terlintas ide BF yang cuma bisa tembus sampe subtask 3. Aku kodinglah itu, karena belum kepikiran sama sekali. Setelah selesai, aku submisi. Deng… cuma dapet 30 poin, sesuai dugaanku. Aku terus baca constraint tiap subtask. Ternyata subtask 5 itu $S_d=S_m$ dan $P[i]=0$ untuk setiap $1 \le i \le N-1$. Terus aku mikir, kalo kaya gini berarti kita cukup nentuin berapa waktu minimum yang ditempuh tanpa mikirin stamina pak dengklek. Aku kodinglah itu. Submisi malah WA 0. Waduh.. apa ini… Ternyata aku lupa ngilangin freopen
. Submisi lagi, WA 16 poin, wah… kok malah subtask 2 WA ya. Ku cari lagi bug nya, selesai benerin ku submisi lagi. Akhirnya A. Pertahanan Pekanbaru dapet poin 38.
Karena aku belum punya ide sama sekali buat soal B. Bahkan ide BF pun gak ada, akhirnya aku coba mainin game dari soal C dulu. Awalnya sempet kebingungan, karena cara mainnya agak bingungin. Tapi setelah beberapa menit adaptasi, ngerti juga cara mainnya. Tujuan awalku main game selain nyampah, aku berharap bisa nemuin ide buat ngerjain subtask lain. Ku cobalah nge-solve subtask 1. Karena $N=25$, dengan mudah ku solve subtask 1. Oke, lanjut ke subtask 2. Wow.. ini $N=21$, gimana ya caranya…?
Ku coba, ehh salah. Ku coba lagi salah… pokoknya salah terus. Hingga aku mikir, “Kalo aku kelamaan di sini, sayang soal lain”. Okelah, aku gak ngelanjutin mainin game nya. Dan saat itu, aku belum bisa mikir ide baru. Karena belum ada ide yang bisa nambah nilai, akhirnya aku nyampah soal B. Open subtasknya, aku bener-bener kerjain di kertas. Ku submisi dan B. Menukar Kotak dapet 15 poin, dan ujian sudah berjalan selama 2,5 jam.
Disitu aku udah bingung harus ngapain. Kucoba main game lagi, sapa tau bisa nambah poin dan semoha nambah. Ku mainin, dan terus WA hingga akhirnya berbuahkan jawaban yang AC. Oke, aku langsung submisi dan soal C, poinku jadi 16. Disini udah gak tahu lagi, baca-baca subtask lagi. Ternyata soal C, subtask 3 itu $N=25$. Artinya bisa ditanyain langsungaja ke-atas terus sampe balek ke tempat asal, terus ke kanan, abis itu atas lagi. Sip, bisa ini tembus. Ku coding lah itu, waktu udah selesai coding aku submisi, C. Daratan dan Es dapet poin 25.
Waktu aku baca-baca subtask, aku bingung di subtask 5 yang $1 \le N \le 4$. Bingungnya kalo misal $N=2$, dan letak daratan pertama itu baik column maupun row nya gak sama dengan letak daratan kedua. Nah, itukan gak bisa ditentuin gimana. Ternyata, udah ada di soal kalo semua daratan dijamin bisa dilewati dan itu baru kusadari waktu udah di hotel.
Waktu tersisa 1,5 jam dan aku cuma dapet 78 poin. Waduh.. pusing lagi harus kerjain yang mana, ada dua pilihan sekarang. Kerjain subtask 4 soal C atau cari solusi AC (paling gak nambah nilai) untuk soal A. Waktu itu, soal B gak ada ide sama sekali bahkan sampe tulisan ini dibuat. Akhirnya aku putusin buat kerjain subtask 4 nya soal C. Hmm.. $N=25$ udah bisa ke solve, kalo $N=24$ ini gimana ya? Setelah pencarian yang cukup lama, tiba-tiba nemu ide.
Buat aja 2 array gitu, terus isi tabel itu dengan cara tanya ke grader. Kalo ada yang bolong, langsung isi aja gak apa. Kalo array pertama itu tanya secara horisontal, sedangkan array kedua secara vertical. Kalo udah diisi dua array itu, cek satu-satu dan bandingkan tiap elemen. Jika arr1[i][j] tidak sama dengan arr2[i][j], maka dapat dipastikan disitu lubang. Pembuktiannya entahlah, dapet ilham seperti itu :v
Nah, disini masalahnya. Aku belum nemu cara handle bolongnya waktu tanya grader. Lama banget kerjain subtask ini.
Hingga akhirnya aku liat kalo sisa 1 jam lagi. Pada waktu itu, bener-bener pressure sangat tinggi. Tiba-tiba muncul ide yang mungkin bisa AC-in soal A. Ideku gini, kalo misal saat ini butuh $S_d$ sebesar $P[i]$, maka pasti kita butuh pertempuran sebanyak $max(0,P[i]-S_d)$. Nah artinya kalo untuk banyak pertarungan yang dibutuhkan lebih dari $i$ atau letak prajurit, berarti keluarkan aja $-1$.
Untuk nge-solvenya, awalnya kita buat arr[3][]. arr[0][] itu isinya waktu yang dibutuhkan kalo pilih kabur, arr[1][i] itu waktu yang dibutuhkan kalo lawan. Sedangkan arr[2][] itu isinya banyak musuh yang sudah dilawan, secara default arr[2][i] itu sama dengan arr[2][i-1]. Untuk pertarungan selanjutnya atau $i+1$, kita harus bandingin lebih cepet melawan atau kabur. Kalo kabur, kita masukkan selisih antara kabur dan lawan di sebuah vector, sambil di sort berdasarkan terendah. Kalo milih tarung, arr[2][] ditambah 1. Nah, kalo banyaknya orang yang dilawan itu kurang dari yang dibutuhkan, maka kita perlu untuk menambahkan waktu (atau answer) dengan elemen di vector yang isinya selisih tadi sebanyak pertarungan sisa yang dibutuhkan. Terus elemen yang udah dipilih tadi, di pop dari vector.
Wah… kayanya bisa ini AC. Akhirnya ku coba coding dengan sisa waktu yang ada. Lama banget kodingnya karena bug sana-sini. Hingga waktu terisa beberapa detik, aku mau submisi tiba-tiba keluar dari kontes. Langsung aku cari password nya terus aku submisi, ternyata dapet WA 8 poin dan waktu habis. Aku mengakhiri hari pertama dengan total poin 78, A(38p)-B(15p)-C(25p). Disitu aku langsung lemes, karena nilaiku cuma segitu.
![]() |
Setelah itu, kami semua diarahkan ke amphiteater PCR. Aku lihat di scoreboard, alhamdulillah masih aman di peringkat 21. Tapi, selama 1 jam terakhir poinku gak nambah dan aku takut turun sampe diluar zona medali. Aku hanya berharap semoga besok bisa lebih baik daripada hari ini.
Setelah istirahat bentar disitu, makan dan sholat, kita akhirnya balik ke hotel.
Sesampainya di hotel, Andrew F., Fausta, Rachman, sama Ariel ke kamarku. Disitu kami bahas beberapa soal tadi, dan aku tercerahkan beberapa soal. Soal pertama yang A. Pertahanan Pekanbaru harus pake priority queue atau heap biar AC. Entah apa bug di programku yang nyebabin cuma dapet 8. Sumbisi last minute ku idenya sama, cuman punyaku versi ribetnya dan aku gak pake PQ. Jadi… ya begitulah.
Soal kedua yang B. Menukar Kotak bisa diubah. DFS berdasarkan ayamnya, bukan kotaknya. Meskipun bukan solusi AC tapi bisa dapet nilai yang lebih tinggi. Mungkin bisa tembus sampe subtask 5 atau 6, kalo solusi AC katanya pake DP.
Untuk yang C. Daratan dan Es, hanya juri yang tahu. Waktu pembahasan sih dibilangin pake random.
Setelah diskusi yang cukup alot, seseorang diantara mereka ngajak ke Mal Ciputra untuk makan di Mc.**. Mereka kok gak bosen gitu, di hotel udah makan ayam, belipun ayam juga. Tapi aku tetep ikut, soalnya pengen beli ice cream. Waktu mau pesen, aku sama Fausta bingung mau pesen apa selain ice cream (Fausta gak pesen ice cream sih). Tapi dia nyaranin pesen O.R. Setelah mikir-mikir lama, akhirnya aku sama Fausta endingnya pesen O.R. juga.
Setelah selesai makan, kami sholat ashar di situ juga. Jadi kami muter-muter buat cari musholla nya padahal udah tanya ke satpam. Sedangkan Andrew F. nunggu disitu. Setelah kami sholat, kami balik ke tempat tadi. Nyari Andrew kok gak ada, kami kira dia udah balik duluan. Akhirnya kami balik ke hotel.
Waktu udah sampai di hotel, tiba-tiba ada sebuah Line Call di handphone ku. Ternyata dari Andrew, dan aku bingung ada apa sampe dia Line Call aku. Akhirnya aku Line Call dia,
“Lah.. Kamu masih di Mal?”
“Iya, kalian sekarang dimana?”
“Hahaha,,, kita udah balek, Ndrew. Kami kira tadi kamu udah balik. Makanya kami langsung balik.”
“Ya udah aku balik sekarang”
Jadi, Andrew ternyata masih di Mal Ciputra. Sehingga dia harus pulang dengan jomblo :v
Disitu kami ketawa dan banyangin Andrew lagi jalan sendirian dari Mal ke hotel. Maafkan kami Andrew.
Day 4 - Akankah Lebih Baik?
Suasana hari ini beda sama kemaren. Pagi ini hujan turun meskipun gak begitu deras. Sambil menatap jendela bus, terus berharap dan berharap. Ku ingin hari ini, pikiranku sama jernihnya dengan air itu (mulai ngelantur).
Karena kami datang sedikit lebih pagi dari kemaren, sehingga ujian hari kedua ini bisa dimulai lebih cepar dari jadwal, yakni pukul 08.20 WIB. Hari ini aku duduk di ruang 2, sama kaya kemaren. Cuma aku beda kursi, aku duduk diantara Budiman Arbenta sama M Aulia Akbar. Seperti hari kemaren, kami diberi hardcopy dari soal untuk jaga-jaga kalau sesuatu terjadi. Gak beberapa lama setelah aku duduk, ujian hari kedua dimulai. Hari ini aku cukup beharap output-only muncul, ternyata hari ini 3 soal batch tanpa output-only. Cukup sedih tapi apalah daya, masa aku harus datengin panitia dan protes karena gak ada soal output-only kan aneh.
List soal hari ke-2:
A. Laskar Bebek (Greedy(?))
B. Labirin Dengklek (BFS+DFS)
C. Aritmetika Bebek
Seperti biasanya, aku baca semua soal dulu. Akhirnya aku pilih buat ngerjain soal B. Kenapa? Karena yang lain belum ada ide. Untuk soal B, pertama aku bakal nyari semua kemunculan string T di petak karakter. Setelah itu, aku bakal nyimpen koordinat start sama koordinat berakhirnya di array. Hal yang sama juga aku lakuin buat string S. Habis itu aku bisa nge bruteforce string terpendek dari seluruh kemungkinan yang ada. Misal string S berawalan pada koordinat ($S_{ax}$,$S_{ay}$) lalu string T berakhir di ($T_{ex},T_{ey}$). Maka panjang string yang ditemukan adalah $|S|+|T|+|S_{ax}-T_{ex}|+|S_{ay}-T_{ey}|-1$ atau dengan kata lain panjang string S + panjang string T + jarak manhattan antara koordinat $S_{awal}$ dan koordinat $T_{akhir}$ - 1.
Langsung aku koding itu, hingga ditengah-tengah ada sesuatu yang melayang-layang,
Karena kepikiran kaya gitu, akhirnya aku pecah DFS nya jadi dua. Yang pertama buat nyari koordinat akhir string T. Yang kedua buat nyari itu tadi, koordinat awal string S. Setelah nge-simple in itu, dan nyelesaiin kodinganku. Akhirnya aku coba buat sample tc. Permasalahan muncul saat sampe tc kedua. Disitu programku kacau. Wah… aku baru kepikiran kalau bisa tumpukan. Ngelihat waktu yang terpampang di depan ruang ujian ternyata sisa 2,5 jam. Saat itu, aku malah bingung sendiri karena nilaiku masih 0.
Akhirnya, aku putusin untuk pindah dari soal B buat kerjain open subtask soal A. Aku kerjain soal A di kertas terus aku submisi dapet 13 poin. Terus aku baca-baca constraint tiap subtask nya lagi, ternyata subtask 4 itu $K=1$. Wah langsung muncul ide, misal $L$ adalah indeks elemen tidak terurut paling kiri, sedangkan $R$ adalah indeks elemen tidak terurut paling kanan, pasti jawabannya itu $R-L+1$. Akhirnya, soal A. Laskar Bebek naik menjadi 24 poin.
Karena soal B tadi terbengkalai, akhirnya ku kerjain lagi soal B. Aku mulai nemu observasi baru (gak baru juga sih). Pasti string yang ditemukan itu diantara bentuk S+T, S+sesuatu+T, ataupun S beririsan dengan T. Untuk kasus yang S beririsan dengan T aku nge-handle nya dengan bikin string baru anggap namanya string B dimana string S beririsan dengan string T. Terus aku ngelakuin BFS buat nyari keberadaan string B di petak karakter. Kalo ada, pasti jawabannya itu $min(|B|,$was_found$)$ dengan was_found adalah string terpendek dari kasus lain yang udah di handle sama ide awalku.
Aku coding sambil benerin bug sana-sini sambil nyederhanain beberapa ide. Akhirnya setelah 3,5 jam ujian berlangsung, solusi soal B selesai. Aku coba submisi, dapet RTE 0. Bingung… karena cari RTE agak susah, cari bug itu emang susah :’(
Memahami cewe lebih susah. Ternyata kesalahan kemarin aku ulang lagi. Aku lupa ngehapus freopen
sebelum ku submisi. Akhirnya submisi lagi, ternyata sekarang RTE 34 yang artinya gak tembus subtask 6 dan WA subtask 3. Bingung, kenapa kok bisa WA di subtask 3. Nyari tricky belum ketemu juga. Masa bodo, akhirnya ku tinggal subtask 3. Sehingga soal B. Labirin Dengklek cuma dapet 34 poin saat ini.
Aku nyoba beralih ke soal C yang sama sekali belum kusentuh. Karena belum ada ide, aku cuma bisa kerjain open subtask itupun yang subtask 1 aja. Akhirnya, ku submisi itu dan dapet 5 poin. Untuk subtask 2, aku mikir-mikir lagi. Pasti gak lebih dari N perubahan, karena $N$ nya itu 5 akhirnya aku submisi jawaban subtask 2 itu 5. Kalaupun salah aku bisa submisi 4,3,dst hingga bener. Akhirnya setelah coba-coba itu, soal C. Aritmetika Bebek dapet 12 poin. Untuk sementara, satu jam terakhir ini aku naik 7 poin karena aku submisi subtask 2 soal C di satu jam terakhir.
Karena udah gak ngerti harus kerjain apa lagi dan satu-satunya yang yakin bisa nambah niai itu soal B. Maka dari itu, aku memusatkan tenaga ku buat nambah nilai di soal B. Pertama, aku cari kodinganku yang bisa bikin RTE. Setelah benerin itu, aku submisi. Ternyata dapet verdict RTE lagi, disitu aku baru sadar kalau RTE ku karena melebih memory limit. Dimana programku menghabiskan memory 130 MB. Waduh, jelas aku cuma bisa nambah kalo subtask 3 dapet AC. Aku carilah tricky case itu. Karena yakin gak ada tricky case, aku sempet nyampah submisi. Mungkin aja bisa berubah :v
Aku baru ketemu tricky nya saat Refindo bilang selesai ujian, “Yang tumpukan itu ribet”. Disitu aku baru tercerahkan dan menemukan tricky case semacam ini.
1 | 3 3 |
Testcase itu yang bikin programku kacau dan menghasilkan verdict WA di subtask 3. Selain itu, aku baru tercerahkan juga kenapa buat nyari keberadaan string B gak pake DFS aja, mungkin bisa mengurangi pemakaian memory. Mungkin…
Akhirnya waktu telah habis sehingga satu jam terakhir aku cuma nambah 7 poin. Sedih? Jelas… tapi mau gimana lagi, sudah terjadi. Aku dapet 70 poin hari ini, A(24p)-B(34p)-C(12p) yang mana itu lebih jelek daripada kemaren.
![]() |
Hasilku di hari kedua |
Setelah itu kami dibagikan kaos hijau, lalu kami diarahkan ke amphiteater PCR. Disitu aku masih ranking 25. Wah.. sempet kecewa, tapi karena tadi satu jam terakhir naik 7 poin ya tetep optimis masih di zona medali.
Scoreboard OSN Komputer 2017 yang telah di freeze dapat dilihat disini.
Setelah makan dan istirahat sebentar, kami diarahkan ke auditorium PCR. Disitu, kami diberikan arahan mengenai ia-toki, tokopedia, PCR, linux, dan pembahasan soal.
Waktu pembahasan soal itu yang bawain kak Ayaz, dan karena keterbatasan waktu jadinya cuma bahas sampe soal 2A, sedangkan yang 2B dan 2C cuman hint aja.
Setelah acara-acara itu selesai, kami diberi kenang-kenangan lagi yakni flasdisk. Flashdisk nya kece karena bisa dipake di smartphone juga. Setelah itu kami menandatangani banner (backdrop(?)) atau apalah itu namanya, terus foto bersama dengan semua yang ada disitu.
![]() |
Di pojok terus... |
Setelah acara penutupan selesai, kami masuk ke bus untuk balik ke hotel. Sesampainya di hotel aku, istirahat sebentar dan merenung… wkwkwkkw
![]() |
Bonus foto waktu penutupan komputer |
Sekitar habis maghrib, mereka (you knowlah siapa…) ke kamarku dan membahas segala hal. Jadinya kamarku ramai. Setelah perbincangan itu, Mereka keluar bentar. Entah beli sesuatu atau gitu seingetku. Jadi tinggal aku sama Fausta.
“Sumpah Fausta… kalo aku dapet medali, aku bakal muterin air mancur lima kali.”
“Lohh… kok lima kali… tujuh kali dong”
Dengan gampangnya
“Oke… tujuh kali”
“Jongkok loh ya…”
“Iya, jongkok” (Ini adalah sebuah penyesalan)
Terus waktu mereka balik, ada yang bawa kartu dan ngajak main kartu. Aku yang sudah ngantuk milih untuk tidur, sedangkan mereka main kartu sampe malem. Si Andrew F. kalo gak salah pilih nyoba kerjain soal yang tadi.
Day 5 - Ke Candi Muara Takus
Pelajarilah masa lalu, karena kamu tak bisa kembali ke masa lalu
Waktu aku bangun pertama kali, aku lihat kalo Andrew F. sama Ariel itu masih bangun dan sebelahku itu Alif. Tapi karena ngantuk masih menempel di diriku, aku ngelanjut tidurku dan bangun sekitar jam 05.00 WIB. Saat yang bersamaan Alif ikut bangun dan dia balik ke kamar nya buat persiapan wisata hari ini. Sementara aku pergi mandi.
Karena kasurku kosong, akhirnya Ariel sama Andrew F. tidur disitu. Padahal Ariel pengen ikut wisata, tapi dia tetep tidur. Setelah aku mandi, aku liat mereka tidur pulas. Aku gak berani ganggu mereka karena aku ngerti rasanya waktu tidur diganggu itu gak enak. Kutinggallah mereka untuk sarapan.
Setelah aku sarapan dan jam menunjukkan hampir pukul 07.00 WIB. Aku coba tanya ke Ariel yang waktu itu masih tidur,
“Ikut.” (Nada orang ngantuk)
“Aku gak ikut, bilangin ke panitia” (Tiba-tiba Andrew F. ngejawab dengan nada orang ngantuk)
“Ok Ndrew. Riel.. buruan, kita berangkat jam tujuh loh.”
“A.. iya”
“Ayo. Sekarang udah jam tujuh. Buruan!!!”
“HA!!!”
Tiba tiba dia bangun. Terus dia bingung mandi dimana. Akhirnya, aku suruh mandi di kamarku. Setelah itu, kami ke kamarnya Ariel sambil dia terus bilang kalo belum sarapan. Dan aku terus ketawa waktu dia bilang kaya gitu. Salah dia, pake acara begadang segala. Ya… Meskipun aku bersalah dikit karena gak bangunin dia lebih awal, cuma dikit. Waktu dia ganti dan siap-siap, aku tetep ngomporin dia,
“Berisik lu shol… lu bangunin gue jam segini. Belum sarapan lagi.”
“Hahahaha”
“Riel… Ayo, busnya udah berangkat ini!”
“Berisik shol…”
“Riel.. Buruan! Hahahaha”
Hingga kami berhasil menyentuh bus dan bus pun berangkat ke gedung MTQ untuk pelepasan dari gubernurnya (CMIIW). Tempat wisata edukasi ada dua, ke Istana Siak sama Candi Muara Takus. Beruntungnya, anak SMA wisata edukasinya ke Candi Muara Takus.
Kurang lebih 1,5 jam perjalanan, bus akhirnya berhenti. Kami kira sudah sampe di candinya, ternyata kita berhenti dulu di tempat pengasapan ikan. Jadi disini kita bisa lihat gimana proses pengasapan ikan. Kita juga bisa tanya-tanya di sini maupun beli produknya langsung. Masalahnya di sini itu panas, ditambah suhu kayu bakarnya. Jadinya aku cuman numpang ke toilet.
Setelah itu, kami melanjutkan perjalanan ke Candi Muara Takus yang ternyata masih jauh. To be honest, jalannya gak enak. Gak halus dan bikin aku mabuk akhirnya. Setelah perjalanan yang cukup lama. Akhirnya kami sampai di Candi. Hmm…. Awalnya aku gak pengen turun, soalnya gak suka liat candi. Tapi karena semua disuruh turun, akupun ikut turun.
Waktu aku turun, udah banyak anak dari bidang studi lain yang kumpul. Entah ada acara apa, mungkin penyambutan dari situ. Dan aku memutuskan untuk muter-muter ke situs candinya setelah makan siang. Di jalan, ketemu sama Moris jadi aku bareng dia. Terus ketemu sama Alif. Aku ajak foto deh..
![]() |
Aku dan Alif Farhan (Lampung) di Candi Muara Takus |
Setelah beberapa jam di situ. Tapi cuma beberapa menit aku di situs candinya. Akhirnya kami disuruh kembali ke bus untuk pulang. Lagi-lagi jalur pulangnya sama, dan aku harus kuat menahan pusing karena jalannya yang gak enak. Ditengah perjalanan, Ariel tidur dan anak-anak menghias muka dia biar kelihatan lebih baik dan dia baru sadar kalo mukanya dicorat-coret waktu udah di daerah Pekanbaru (?).
![]() |
Para penghuni bus 2 Komputer |
Sesampainya di hotel, kita harus siap-siap lagi buat ikut pendidikan karakter. Itu badan serasa rusak semua, soalnya pusing karena perjalanan tadi ditambah perjalanan ke acara. Tapi tetep harus dijalani dengan ikhlas (ceilah…)
Setelah selesai mengikuti pendidikan karakter, aku sempet bingung nyari busnya dimana. Karena tiba-tiba saja aku terpisah dari rombongan anak komputer. Jadi aku muter-muter untuk nyari busnya. Untungnya gak ditinggal.
Seperti biasanya, hari ini ada aja yang kumpul ke kamarku. Mereka adalah Budi, Andrew F., Ariel, Fausta, Amar, Ghozi, Rachman (Rachman, kamu hari ini ke kamarku apa gak?). Jadi di kamarku ada 7+2 manusia. Lagi-lagi mereka merusak dan memporak-porandakan kamarku. Ditambah ada yang menjajah kasurku. Entahlah… apa yang para penjajah pikirkan terhadapku? :’(
![]() | ![]() |
Kerusuhan yang terjadi malam itu |
Alhasil, aku harus tidur di sofa. Tapi karena udah ngantuk ya tetep bisa tidur. Betapa sedihnya nasibku ini di malam-malam terakhir OSN. Sedangkan manusia yang lainnya, aku gak tahu kapan mereka pergi dari kamarku. Tiba-tiba aja udah gak ada paginya.
Day 6 - Muterin Air Mancur Atau Gak?
Jadwal hari ini termasuk santai karena cuma penutupan di Gelanggang Remaja, Pekanbaru.
Penutupan dijadwalkan jam 14.00 WIB.
Sesuai perjanjian di malam hari kemaren, kita sholat jumat di sekitaran hotel. Setelah itu kita baru berangkat sekitar jam 13.15 an. Nah, untunglah hari ini kami dapat tempat duduk yang enak. Gak kaya pembukaan kemaren. Jadi kami duduk di tengah-tengah anak astronomi sama fisika.
Penutupan baru dimulai pukul 15.45 an karena orang-penting baru dateng. Jadi yang awalnya dijadwalkan jam 16.00 itu pengumuman, ini baru dimulai acaranya…
Deg..deg..deg…
Urutan pengumuman, medali perunggu SD > medali perunggu SMP > medali perunggu SMA.
Nah, dari awal itu Andrew F. udah geregetan dan gak sabar. Dia takut gak dapet medali. Sebenernya aku juga.. hehehe cuma lebih memilih tenang aja. Soalnya hasilnya udah ada, ngapain harus ribut sendiri…
Akhirnya MC menyebut “Medalis perunggu komputer”, disitu deg deg-an mulai kenceng. Andrew F. berisiknya nambah… (peace ndrew). Satu persatu anak dipanggil, yang pertama Ariel, terus berlanjut ke anak selanjutnya hingga Andrew F. dipanggil. Gak lama namaku juga dipanggil dan disitu aku sempet gak percaya dan lemes. Akhirnya turun dan naik ke panggung. Aku baru sadar kalo namaku itu yang terakhir dipanggil untuk medali perunggu komputer waktu lari ke panggung. Disitu antara bangga dan sedih. Bangga karena dapet medali, sedih karena kurang bisa memaksimalkan usahaku.
Yang disayangkan dalam penganugerahan medalis tahun ini (ceileh.. penganugerahan :v) adalah gak ada foto bersama. Jadi kami seperti lagi wisuda, naik panggung > ambil medali > turun > mengurus administrasi. Gak beberapa lama (mungkin karena nunggu proses antre administrasi lama makanya kerasa cepet) Fausta datang dengan medali peraknya… (Pengkhianat, beda warna sendiri.)
![]() |
L-R: Andrew F, Fausta, aku, Ariel L-R: Bronze-Silver-Bronze-Bronze |
Setelah semua urusan selesai, kita kembali ke hotel. Waktu itu, Refindo entah kemana jadinya dia balik ke hotel naik taksi. Kita sempet heboh bentar disitu, soalnya takut dia beneran ketinggalan. Tapi seperti biasanya, peristiwa itu hanya berlangsung beberapa menit dan sisanya gak peduli :v
Setelah makan malam, aku mulai melakukan janjiku kemaren untuk muterin air mancur 7x. Niatnya langsung nyelesaiin semuanya, tapi ternyata 2 puteran udah capek. Jadi aku sama para anak-anak ini balek ke kamar. Istirahat bentar dan dengan motivasi “Gak mau ada hutang”, akhirnya aku ngajak Fausta untuk turun dan jadi saksi.. wkwkwk. Akhirnya semua anak-anak(Gak semua juga, cuman 4 mungkin) turun dan mereka like a boss ngelihat aku muter muter. Akhirnya janjiku terpenuhi. Jadi tinggal janjinya aceng buat joget ya… Kutunggu jogetmu ceng.
Nah, si Rachman ngajak renang tapi aku gak mau karena capek dan yang ikut cuma Alif, Naufal Fitrah(karena diancam :v), Ariel. Tapi mereka mbulet gitu.. nunggu ini, nunggu itu…
Hingga akhirnya mereka renang :v
Dan aku packing karena besok harus bangun pagi dan berangkat ke bandara.
Day 7 - Balik Kampung
“Balik = Kembali”
Gak banyak yang bisa diceritain di hari terakhir OSN ini, karena agenda nya cuman balik ke rumah sendiri sendiri.
Dimulai dari aku yang harus bangun jam 05.00 dan membangunkan beberapa anak Jatim yang telat bangun. Kemudian berangkat ke bandara pukul 06.00 barengan sama kontingen Lampung dan provinsi lain(aku lupa dari mana aja)
Kemudian check-in pake kartu anggota rohis (Kerohanian Islam) bukan kartu tanda pelajar dan yang terakhir pindahnya gate karena keterlambatan pesawat.
Sesampainya di Bandara Juanda dan mengurus semua hal, aku ngajak foto kontingen komputer Jatim. Makanya foto yang aku pajang di page pertama itu Andrew T. gak ada, soalnya dia udah keburu pulang. Jadi aku telat ngajak fotonya…
Yang lebih menyedihkan lagi adalah disaat anak lain disambut sama sekolahnya, aku cuman disambut sama ayah dan adikku :’(
Tapi mending sih, malah sebelumnya aku ada rencana kalo pulang naik taksi. Entahlah apa yang akan terjadi kalo aku pulang naik taksi. Ngenes++ hidupku, kayak anak ilang :v
Pelajaran
- Harus selalu optimis dan berusaha mendapatkan yang terbaik.
- Harus fokus ke salah satu soal biar bisa dapet solusi yang optimal.
- Menentukan prioritas pengerjaan soal itu penting.
- Siapkan mental dan fisik.
- Selalu ikuti semua simulasi dan try out dari manapun. Intinya selalu latihan dengan giat.
- Harus lebih have fun waktu ngerjain soal.
- Rajin baca constraint tiap subtask, karena bisa mikirin strategi nyampah dari situ.
- Jangan mudah menyerah untuk segala hal.
Trivia
- Baju kontingen Jawa Timur buat anak komputer sama astronomi telat dateng, jadinya kami gak pake baju kontingen waktu pembukaan.
- Waktu pertama kali aku, Ariel, dan Zainal ke kamar Alif. Si Alif keluar sambil nutup pintu kamarnya dengan polos. Kami ketawa dan dia baru sadar kalo kekunci. Alhasil kami semua ke kak Tama buat ambil kunci karena mereka satu kamar.
- Fausta selalu nyalahin aku karena gak diajak makan malam bareng. Padahal dia sendiri gak mau makan malam.
- Terlalu banyak gosip di Bus 2 bidang komputer OSN 2017.
- Waktu aku muterin air mancur hotel, ada segerombolan mbak-mbak yang kaget ngeliat aku. Entah mereka ngelihat aku kaya apa.
- Ada seseorang yang nyelonong masuk ke kamarku cuma pakai handuk buat ganti baju di kamar mandi karena habis renang (Hayoo siapa?)
- Aku ninggalin dompet di tas OSN, padahal tas yang aku bawa ke Pasar Bawah itu tas satunya. Untung masih ada uang di tas itu.
- Pernah suatu hari, aku sama Ariel berencana ke kamarnya Ariel. Tanpa sadar kita turun di lantai 4, dan nyoba masuk ke kamar 409 tapi gak bisa bisa. Padahal nomor kamar Ariel itu 509.
- Salah masuk kamar mandi cewe waktu di PCR, gara-gara gak ada tandanya. Untung gak ada orang di dalem.
Penutup
Itulah seklumit kisahku di Riau bersama dengan semua siswa/i terbaik se-Indonesia.
Aku mau berterima kasih buat semua yang udah dukung aku terutama ayah dan ibuku. Makasih juga buat yang mau baca cerita ini, karena kalo gak ada yang baca blogku sepi jadinya.
Selain itu, aku juga mau minta maaf kalo ada yang tersinggung dalam post ini. Ini aku beneran minta maaf setulus hati kawan. Aku juga minta maaf kalo ada yang gak disebut disini karena sejujurnya aku udah lupa. Terutama yang ke kamarku, itu anaknya cukup banyak… So, maafin aku ya kawan.
Meskipun post ini sangat gak bermanfaat, semoga bisa diambil manfaatnya… :v
Sampai jumpa di post-post tak berfaedah selanjutnya!
PS: Doain semoga post selanjutnya lebih berfaedah dari ini.