Improve your CP with CodeForces

Hello hello guys, kali ini aku mau berbagi kalian penjelasan tentang salah satu website terbaik untuk belajar Competitive Programming yaitu web CodeForces (CF).

CodeForces

CodeForces adalah salah satu web untuk belajar CP dan bisa dibilang web paling populer + terbanyak user, dibuat oleh sekumpulan kelompok Competitive Programmer dari ITMO University yang dipimpin Mike Mirzayanov.

tampilan_CF

(btw kebetulan logo CF tersebut sedang pake masker untuk menghindari coronavirus, dan Code sama Forces-nya lagi melakukan Social Distancing)

Contest in CodeForces

Salah satu poin baik dari CodeForces adalah seringnya berjalan kontes CP, mungkin hampir setiap minggu selalu ada. Biasanya writers dan testers dari kontes itu juga sangat experienced jadi soal-soal bisa dipastikan professional!

tampilan_kontes

Nah, kontes di CF ini dibagi menjadi beberapa divisi sebagai berikut:

  • Div.3 : Kontes ini diperuntukkan bagi user yang memiliki rating \(\leq 1599\) (penjelasan rating akan dijelaskan nanti).
  • Div.2 : Kontes ini diperuntukkan bagi user yang memiliki rating \(\leq 1899\) (jika kontes terbagi menjadi Div.1 dan Div.2) atau untuk user yang memiliki rating \(\leq 2099\) (jika kontes Div.2 Only)
  • Div.1 : Kontes ini tidak memiliki batas rating, jadi biasanya penuh dengan para petinggi competitive programming.
  • Div.1 + Div.2 : Basically semua dapat ikut, jadi yang jago dengan yang numayan jago bisa mengikuti.

Untuk setiap divisi tersebut, bisa saja ada yang memiliki rating lebih dari batas itu, tetapi bisa tetap mengikuti kontesnya, namun orang itu akan terhitung sebagai out of participant, sehingga tidak terhitung bagi ratingnya dan orang tersebut tidak terhitung pada rank sebenarnya di kontes itu.

Kemudian Style Contest di CF ini biasanya ada dua:

  • Codeforces Round : Kontes dengan style ini biasanya memiliki score untuk setiap soal, jadi yang lebih susah biasanya lebih besar score-nya.
  • ICPC-Style : Kontes dengan style ini dari namanya ya obviously mengikuti format ICPC, yang artinya setiap soal itu score-nya berdasarkan menit submission accepted, dan untuk setiap submission yang salah akan diberi penalty \(20\) menit.

Lalu, biasanya di CF ini ada kontes yang berpengaruh ke rating (rated-round) dan yang tidak berpengaruh ke rating (unrated-round)

Nah lanjut ke tips and tricks untuk kontes di CF ini, ada beberapa hal yang kalian perlu tau.

Virtual Contest

Kamu terlalu sibuk karena kehidupan chaos di ITB ? Sampai tidak bisa ikut kontes di CF ? Sans gan, ada virtual contest yang bisa kamu ikuti di CF! Virtual contest atau vircon sesuai namanya adalah contest yang bisa kalian ikuti sehingga seolah-olah kalian mengikuti kontes bareng dengan yang sebenarnya mengikuti. Salah satu cara melakukannya adalah ke bagian Contest di CodeForces, terus pilih kontes mana dan klik “virtual participation” seperti di gambar ini:

virtual_contest

Tentunya ada beberapa catatan mengenai vircon ini, vircon yang kalian ikuti akan menjadi otomatis ICPC-Style, kemudian tentunya tidak akan berpengaruh pada rating user.

Nah dengan vircon ini, kalian bisa menghitung berapa rating-change kalian di web Codeforces Visualizer.

Editorial Contest

Setiap contest di CF biasanya memiliki editorial atau pembahasannya, nah cara liatnya biasanya harus enter dulu kontesnya habis itu dibagian pojok kanan bawah ada Contest Materials terus tinggal klik deh link Tutorial-nya.

editorialz

Nanti biasanya link akan melakukan redirect ke blog editorial kek gini:

editorialblog

Tips and Tricks : Coba-coba cek comment di editorial, biasanya bisa ada penjelasan soal yang lebih baik dari penjelasan editorial itu sendiri.

Rating Predictor in Contest

Ada must have extension nih buat kalian yang ikut kontes di CF, yaitu extension CF-Predictor, dengan extension ini kalian bisa liat secara live, perubahan rating kalian.

cfpredictor

Rating in CodeForces

Rating di CodeForces ini basically suatu sistem rank untuk user di CodeForces, well bisa dibilang rating ini menentukan seberapa experienced-nya suatu orang, lebih jelasnya bisa dilihat tabel berikut:

rating_cf

(Catatan : Sekarang seharusnya Candidate Master \(1900-2099\), Master \(2100-2299\), Legendary Grandmaster \(\geq 3000\))

Rating ini berubah ketika kita mengikuti rated contest, lebih baik rank-nya kemungkinan naik rating lebih besar juga. Tentunya orang yang memiliki rating tinggi akan mempunyai expected rank yang lebih tinggi, jadi harus lebih bagus performanya di kontes. Setiap rating changes terjadi, akan ada visualisasi graph pada profile user tersebut. Contohnya kayak di profile mas tourist ini.

tourist_euy

Rating ini seperti yang disebutkan sebelumnya, menentukan kalian ada di rank berapa pada CodeForces.

rating_euy

Contohnya gambar diatas menunjukkan rank user saat ini (yang masih aktif selama \(6\) bulan yang baru ini), di gambar tersebut ada # yang menunjukkan berapa kali user kontes dan disampingnya ada rating user tersebut. Kalian juga bisa liat rating tertinggi di Indonesia dengan filter Country, atau rating di ITB dengan filter Organizations.

Problemset in CodeForces

Problemset di CF ini adalah basically kumpulan soal-soal CF yang pernah ada di contest, biasanya ini digunakan untuk practice.

probset

Bisa dilihat pada gambar tersebut, setiap soal memiliki tag materi, misal brute force, terus ada gambar bintang yang artinya kalian bisa masukin soal itu ke list favourite problems kalian, ada juga gambar petir yang menunjukkan soal itu setara dengan rating berapa, lalu gambar orang dikanan itu menunjukkan berapa banyak yang telah berhasil solve soal itu. Soal tersebut akan berubah warna hijau jika kalian berhasil solve, dan merah jika gagal.

Tips and Tricks :

  • Ada Settings untuk uncheckshow tags for unsolved problems”, jadi kalian bisa menghilangkan tag materi problem biar kalian mikir dulu ini soal berhubungan dengan materi apa.
  • Filter Problems : kalian bisa filter problem menurut tag dan rating, jadi misal kalau mau nyari soal tentang dynamic programming sabi tuh di filter aja.
  • Jika kalian kesusahan dengan satu soal kalian bisa cari submission orang yang sudah accepted untuk soal itu, caranya dengan pertama-tama enter ke kontes soal itu (bisa dengan klik soalnya lalu di kanan page soal baru klik kontesnya), kemudian klik status di page contest, habis itu tinggal cari status filter dan filter soal yang mau dikerjain, jujur aku sendiri belajar banyak dari submission orang.

Gym in CodeForces

Gym di CodeForces ini biasanya digunakan untuk latihan team, biasanya Gym ini berisi kontes-kontes luar dan soal training, ada soal dari ICPC Europe misalnya, ada juga kontes-kontes nasional dari negara lain.

gym_CF

Kalian bisa mengikuti salah satu kontes tersebut dengan klik virtual participation lalu bisa mengerjakan sendiri atau dengan team (jika punya). Di Gym ini ada berapa bintang untuk setiap kontes yang menunjukkan kesusahan kontes tersebut, lalu kalian bisa juga filter training. Nah, ada hal yang banyak orang tidak tau nih, jika kalian memiliki rating cukup tinggi, kalian bisa menjadi Coach, nanti akan muncul Coach rights kek gini.

coach

Blog in CodeForces

CodeForces ini penuh dengan user yang berbagi ilmu dan pengalamannya, kalian bisa liat-liat sendiri lah ya, ada banyak tutorial yang kalian bisa baca dari blog-blog CF ini. Ada juga yang berisi motivasi dan strategi belajar CP, contohnya blog dari user E869120 - masataka yoneda ini (aku recommend kalian buat baca ya btw):

blog_CF

Akhir Kata

Sekian dari penjelasan tentang web CF ini, semoga kalian bisa aktif di CF dan berkembang skill CP-nya. Tentunya kalian bisa belajar di web lain juga sih ya seperti TLX, AtCoder, CodeChef, HackerRank, cp-algorithms, dll.

Semoga Bermanfaat