E869120's blog

By E869120, 2 years ago,

Dear Codeforces community.
Finally red :)

Today, I want to share about some ways to practice competitive and gain your rating. I hope that this is helpful for those who is practicing competitive programming harder but rating is sluggish. There are 54,000+ people who participated in Codeforces contests actively, but sadly only a few people reach a red-ranked coders. For people who can't reach red, I will introduce my way to gain rating in some steps.

This blog is an extended and more detailed version of my previous tutorial blog, but 2 years and now are different. So there are many points that are different from blog which has written 2 years ago. Note: Some people who already read my previous tutorial blog may doubt, but do not doubt — I should say that the "from rating 1000 to 2000" part of this blog is not the copy of my previous blog and it's very different.

Since the size is very big, if I wrote contents to Codeforces blog directly, it might be too long. So, this time, I will share a 19-page PDF link of my tutorial blog. This time, my blog includes introduction, knowledge of some contests systems (AtCoder, TopCoder) and some convenient websites, some ways to practice for improve rating, and conclusion. Also, optimal practice method is differ by rating. So, this time, I will write in 4 steps: 1000 -> 1400, 1400 -> 1900, 1900 -> 2200, and 2200 -> 2400.

The link of my blog (PDF) is as follows:

[Tutorial] A way to practice competitive programming — from rating 1000 to 2400+

Please comment if you have suggestions, comments to my blog, and opinions on my way to practice.

• +607

 » 2 years ago, # | ← Rev. 2 →   +20 Thank you !
 » 2 years ago, # |   +16 Thank You for the amazing tutorial!. I hope you become LGM soon.
 » 2 years ago, # |   +26 Could you please, write a tutorial about preparation for Olympiads in Informatics?I appreciate your dedication and all this work very much, thank you for a new amazing tutorial!
•  » » 2 years ago, # ^ |   +13 If you reach yellow+ in CF and/or topcoder. Plus you solve enough past OI problems from the well-known checklist by ko_osaga, I guess you're pretty much set to win atleast a bronze.
•  » » » 2 years ago, # ^ |   +19 E869120 has already won a gold medal at the IOI, link.For my country whole history only 2 students won a gold medal and it was 12 years ago. This fact confuses me, I don't think that we don't have talented hard-working students. Thus, I'm very curious about how to win a gold medal and it's a reason why I ask E869120 for help.
•  » » » » 2 years ago, # ^ | ← Rev. 2 →   +29 Okay, now I know that there are a lot of people who wants to know how to get gold medal in IOI. Since writing so many blogs in short period is not so good for me, I'll write a blog about "[Tutorial] How to win a gold medal in IOI" (title is tenative) 2-3 weeks later. Thank you for your proposal. :)
•  » » » » » 2 years ago, # ^ |   +16 Great!I'm very grateful to you!
•  » » » » » » 2 years ago, # ^ | ← Rev. 2 →   0 Any updates? Have you won something on IOI?
•  » » » » » » » 2 years ago, # ^ | ← Rev. 5 →   +11 Finally, IOI 2019 finished. Sorry for waiting, but I will publish the blog about "IOI strategy & practice method" at Wednesday, August 14, 13:00 JST. Thank you for your patience. UPD: The publish time will be delayed by 150 minutes. UPD2: Since Codeforces page reload is heavy, the publish time will be delayed by 10 more minutes. The new publish time will be Wednesday, August 14, 15:40 JST.
•  » » » » » » » » 2 years ago, # ^ |   0 I have set up my alarm tomorrow ;)Also, thank you for the souvenirs ;)
•  » » » » » » » » » 2 years ago, # ^ | ← Rev. 2 →   +3 Now, new blog is open! Link: My winning theory in IOI 2018 & 2019 — Why I won 2 golds in IOI Thank you for waiting, and thank you for your patience.
•  » » » » » 2 years ago, # ^ |   0 Hurry up, so all contestants can win gold medal in IOI2019 if that's even possible.
•  » » » » » » 2 years ago, # ^ |   0 Now I am during school trip, so I cannot write now :(
•  » » » » » » » 2 years ago, # ^ |   0 Ignore my comment, enjoy your time :D
•  » » » » » 2 years ago, # ^ |   0 I dont mean to pester you, but as an absolute beginner, I am highly anticipating the blog!When do you plan to post it?
•  » » » » 19 months ago, # ^ |   0 $3$ already:)
•  » » » 13 months ago, # ^ |   0 What is that well-knwn checklist? Can you please give me a list?
•  » » » » 13 months ago, # ^ |   0
 » 2 years ago, # |   +39 How do you see performance rating in cf?
•  » » 2 years ago, # ^ | ← Rev. 2 →   +34 First, I should apologize that I did not show how to calculate performance in Codeforces in my blog. Thank you for your comment. Actually, in Codeforces, your approximate performance in contests/virtual is calculated as follows: $p$ : Your rank in Codeforces contest $a$ : Initial rating of participant who got rank $p$ $b$ : Rating change of participant who got rank $p$ $perf = a + 4 * b$ (approximately) For example, if you got 20th place in contest and rating changed from $2513$ to $2604$, your performance is approximately $2513 + 4 * 91 = 2877$. Another example is virtual contests. If you got $4200$ points and it was between $13$-th place and $14$-th place in actual contest, your performance is approximately the average of performance of $13$-th player and performance of $14$-th player. But there could be error of ~50 rating performance. So if you want to calculate more precisely, you can pick the rating change of several people who got very near rank and rating does not change so much. Sorry for not showing performance calculation formula in my blog.
•  » » » 2 years ago, # ^ |   0 Thanks, you are really a good contributor.
•  » » » 2 years ago, # ^ |   +10 I think you can also calculating it by finding the value of the rating for which the rating change of the virtual contest is 0, using this tool.I assume that if the rating change is 0 in some contest, then the performance is approximately equal the your rating.
•  » » » » 2 years ago, # ^ | ← Rev. 3 →   0 Woooooooow very good idea to calculate rating! From next time, I will use this idea. Thank you!
•  » » » » 2 years ago, # ^ |   0 Also, for a predictor of rating changes during the contest or much earlier than CF shows, you can use an extension with chrome here.
 » 2 years ago, # |   +10 Thank you so much for your great contribution to the Codeforces community.
 » 2 years ago, # |   +18 Thank you for your tutorial !!!!!!!!!!!!!!! Love you so much !!!!!!!!!!!!! I want be the best !!!!!!!!!!!!!!!!!!!!!!!!!!!
 » 2 years ago, # | ← Rev. 2 →   +120 A way to increase contribution from $0$ to $100$:$0$-$20$: leave stupid comments$20$-$40$: write a blog on how to increase contribution from $0$ to $20$$40-60: write a blog on how to increase contribution from 20 to 40$$60$-$80$: write a blog on how to increase contribution from $40$ to $60$$80$-$100$: write a blog on how to increase contribution from $60$ to $80$
•  » » 2 years ago, # ^ |   0 Will you tell how to increase from 100 to 120? Just 17 points to write from 120 to 140 XD
•  » » » 2 years ago, # ^ |   0 $120-140$: set contests
•  » » 2 years ago, # ^ |   0 How about how to get minus contribution? Your comment is not too informative. Please review your shallow comment.
•  » » 2 years ago, # ^ |   0 To increase contribution from 80-100, you need to be a red coder too xD
•  » » 2 years ago, # ^ |   0 I appreciate your humor. And seems like it worked for you. The only reason I see for this is the fact that you are a Grand Master. But can you explain how much upvotes make +1 contribution and how some people have even negative contributions too?
•  » » 16 months ago, # ^ |   0 This is also 0-20
•  » » 12 months ago, # ^ |   0 leaving stupid comment here to test :haha
 » 2 years ago, # |   +10 Astonishing effort, thank you!
 » 2 years ago, # |   +13 It's about time you add a new character to your name and get the Nutella node in your avatar.
 » 2 years ago, # |   +10 Thank you very much for your article. Because you didn't participate for so long on codeforces but you trained a lot, now you will probably get to constant IG no problem.
 » 2 years ago, # |   +10 Thank you!
 » 2 years ago, # |   +29 Very thank you for so many number of readers and so many comments. I know that there are many, and countless number of people who want to gain rating in Codeforces. I'm really hoping that my blog is usable for some people. Also, I'm really hoping that tutorial blog will increase in Codeforces, because it can be very beneficial for readers and Codeforces users. Anyway, I really appreciate for hundreds (maybe over 1000) of people who read my blog. Cheers!
 » 2 years ago, # |   +14 Hi, which 50 topcoder problems to solve to get better, also how can I submit topcoder problems on the online judge.
 » 2 years ago, # |   +15 You are awesome, thank you very much E869120, my goal is to be candidate master before finish this year, Just for curiosity, How many hours do you train per week?
•  » » 2 years ago, # ^ |   +12 Because I have some classes in high school, on weekdays, I trains ~3 hours per day. On weekends, I trains ~8 hours per day. So, on average, I trains approximately 25-30 hours per week. But just before IOI was different. In Japan, there is summer vacation from late July to late August. So, usually, just before IOI is during summer vacation in Japan. So I was able to train 12-14 hours per day from 1-2 weeks before IOI.
 » 2 years ago, # |   +10 Amazing!
 » 2 years ago, # |   +13 Great job!I enjoyed every page of your tutorial ;)
 » 2 years ago, # |   +15 Hi! I remember you as one of the tomato twins. :)I guess I'm the only one among the IOI18 golds, who had gone purple from orange after IOI. I always wanted to be a red coder, but now I know that I never practiced seriously for that. Maybe I just have been lost, forgetting how to practice.This post is not only amazing itself, but it also reminds me that if there is a shining achievement, there should be corresponding efforts.Congrats to you being a red coder, and thanks for your guidelines. Hope to see you again!
•  » » 2 years ago, # ^ |   +8 Thank you! And hope to see you again! By the way, my mascot that I brought in IOI 2018 was not a tomato, but an apple :)
•  » » » 2 years ago, # ^ |   +10 Whoops, sorry. Its color was so tomato-ish. XD Thanks anyway!
 » 2 years ago, # |   +10 thank you
 » 2 years ago, # | ← Rev. 2 →   +13 Oh,Chinese can't use Google. So can you give the link in another websites such as github.com?
•  » » 2 years ago, # ^ |   +8 Sorry for replying very late, because I was busy for practicing for APIO. This is the link of my tutorial in github. Sorry for replying late, and thank you for mentioning that Chinese cannot use google. (I didn't know about that)
•  » » 14 months ago, # ^ |   0 He is Japanese. XD
 » 2 years ago, # |   +15 Does AtCoder release English editorials for ABC contests ?
•  » » 2 years ago, # ^ |   0 Sometimes. Not in every ABC.
•  » » » 2 years ago, # ^ | ← Rev. 3 →   -8 Thanks. As I later read in the OP's tutorial, the editorials usually contain code samples, so that helps. I also tried google translate for some of the problems and it worked OK for me.(I was writing this comment while boarding a plane so I missed this part :))
 » 2 years ago, # |   +10 Thanks for your help. You are kind hearted
 » 2 years ago, # |   -14 Hoow to reach the level of gennady korotkevich or petr mitrichev ? any idea ?
•  » » 16 months ago, # ^ | ← Rev. 2 →   0 .
 » 2 years ago, # |   0 Dear E869120 thanks to you for posting all your insights. I would like to know your opinion about Hackerrank problems. Do you ever use hackerrank for practice or do you think the other judges mentioned in your tutorial have more rich problems?
•  » » 2 years ago, # ^ |   0 Yes! 2 years ago, I was solving hackerrank problems, and participating in hackerrank contests including "Week of Code" or "Hourrank". In my opinion, since many of hackerrank contests there are many partial scoring, if you want to practice for OI-like contests (IOI, APIO, POI, national selection camp for IOI) it is good idea to practice hackerrank. Since there are many typical problems in hackerrank, I think that if you think you are lacking of using typical algorithm efficiently, solving hackerrank is also a good idea. But if you want to improve skills to solve problems faster, or skills to thinking about solution, you should upsolve problems in AtCoder.
 » 2 years ago, # |   0 Hey, I wanted to know how can some people on codeforces are able to solve questions like just in a minute. They have a submission for A-type problem on 00:01 and for B-type problem on 00:03. How's that possible? if I only consider the reading time for question and then even copy paste the code it goes beyond a minute. Please suggest some tips to increase our speed like that.
•  » » 2 years ago, # ^ |   0 Actually it is not that hard ... 00:01 in CF actually means that the submission was made before the second minute of the contest. So 40 seconds to read problem statement and 1 minute 19 seconds to write code amd submit. Shouldn't be too hard for problem As in div 2.Also, you can watch the screencast of several GMs on youtube to see how they do it.
•  » » » 2 years ago, # ^ |   +1 Hey thanks, I was not aware that it's a 1 min and 59 secs game. And can u share some links of the screencast?
•  » » » » 2 years ago, # ^ |   +1 Oh c'mon. Don't be lazy. Just google codeforces round screencast.
 » 2 years ago, # |   -8 Can someone please elaborate how these contributions increases or decreases on codeforces?
 » 2 years ago, # | ← Rev. 3 →   +19 This is incredible ! I have been following your posts ever since you were a Candidate Master and this is a fantastic achievement ! Many Congratulations. I am quite proud of you.Your tutorial is also quite helpful. Solving problems on AtCoder does do wonders.Thank you very much for sharing the website kenkoooo. On AtCoder, we cannot see which problems we have solved in one screen and need to go to the Submissions page of each individual contest. This website is certainly very helpful. (Although now that AtCoder Beginner Contest has started including 6 problems, the interface of kenkoooo will also have to change. Not sure if they will be able to accomodate that.)Wish you all the best !May God bless you
 » 2 years ago, # |   +10 Thanks for your experience."But getting average performance of rating 2400 is much more difficult than you think."I have been stuck in orange for long time, and reached red by luck. I admit that I can't keep red. Training skill above 2200+ mentioned in your tutorial seems very useful to me.
 » 2 years ago, # |   +3 I'm weak at math.Can you drop some suggestions to grow decent knowledge on topics like combinatorics,probability,geometry etc.?Thank you for the tutorial!
 » 2 years ago, # |   0 Thank you very much, I might finally reach green (maybe beyond green) if I follow this.
•  » » 2 years ago, # ^ |   0 congrats man you reached green..time for me also :D
 » 2 years ago, # |   0 thank you for this great effort , your are helpful ;
 » 2 years ago, # |   +25 Thanks for a great tutorial!I disagree with some points but it's ofc. hard to say which method is the best. What I would recommend: Don't go to the editorial after some fixed time like 20 minutes of solving a problem. Give up only if you are stuck for 10-30 minutes (10 in case of easy problems, more for harder ones). As long as you have some ideas, do investigate them and maybe you'll solve the problem yourself. Upsolving problems is very important. This way you learn new things. After a contest or virtual participation, try to solve at least one more problem. This should be said early in the PDF, not only in parts about getting red rating. I don't think you should copy segment trees from your code library (reference document). It's better to struggle for some time and implement them every time. You will get faster and will understand them better. Plus this is a must for those who prepare for IOI. My friends and I implement seg-trees from scratch every time. I don't remember if I ever used to copy them. It's unnecessary to do "50+ virtual participations in CF". Just solve problems slightly above your level. Do some virtual participations if you want to. Consider changing "Make a routine that you will do just before the contest. It directly leads to the concentration during the contest." to "don't care about the contest, just have fun solving problems". I'm quite sure people perform better when they are relaxed (but not distracted). "Although I experienced competitive programming for 3 years, I think that I don’t know many techniques" — I think that's because you're doing too much virtual participation. You spend a lot of time on easy problems this way.
•  » » 2 years ago, # ^ | ← Rev. 4 →   +21 Wow great idea & suggestion from a coder once reached legendary grandmaster...! Thank you for your comment.
•  » » » 2 years ago, # ^ |   0 Is this a variation of "Wow! cool post. Thanks for sharing."
•  » » 2 years ago, # ^ |   0 I don't quite care about rating and enjoy CF contests for fun. But when I go to IOI I can't quite do the same and I failed hard...
•  » » 6 months ago, # ^ |   0 After reading this blog, the earlier one and the IOI and Errichto tips.I realized that I don't want to increase my ratings rather I just want to learn.Moreover, thanks for telling me the tale of becoming red. I learned many things from your experience.
 » 2 years ago, # |   0 Hi did you wrote the IOI tutorial?
 » 2 years ago, # |   +3 Great thanks to this blog, I think I should practice much harder than before.
 » 2 years ago, # |   +10 Thanks a lot for the tutorial, very helpful!I'm trying to solidify my rating above 1400. One problem I'm seeing is that I tend to do well on Div2-only rounds, but pretty poorly on combined rounds. I reached a peak rating of 1521, then lost 214 points in just 3 combined rounds (CF Global 3+4 and Forethought Future Cup).Is it mostly weak "mathematical concepts and thinking" like your guide claims? If so, should I focus my practice on TopCoder to strengthen those? Specifically, Div1Easy?
•  » » 2 years ago, # ^ | ← Rev. 2 →   0 To solve problem on combined round (ex. Codeforces Global Round), mathematical concepts are needed. For example, in the third problem on Global Round 4, the answer only outputs $2^{H+W}$ — definitely one great example of mathmatical problem. Another example is the fourth problem on Global Round 4, just think about loop which the degree of all vertex is 2, and adding some edges. Graph theory is also the main part of mathematics, and many people who are familiar with TopCoder SRM can solve this problem easily. I think that you are mainly stuck on problem with mathematical concepts. Solve TopCoder Div2Medium and Div1Easy. (I think that Div2Med is bit easy for cyans) I have three notices to solve TopCoder problems as follows: Some of the round is very difficult — even 4 in 5 of Div1 participants could not able to solve during the contest. Check https://competitiveprogramming.info/ and you can check the difficulty of each problem. Thinking long time is important for the introduction of solving TopCoder SRM. So in your pattern, don't give up for at least 60 minutes before looking editorial. When you solve some problems on TopCoder SRM and you feel that your skill of mathematical concepts is improving, I recommend to solve SRM 600-719. They are bit difficult, but they are good for you.
 » 2 years ago, # |   0 Thanks a lot.
 » 2 years ago, # |   0 Thanks!!!
 » 2 years ago, # |   0 I like it SO MUCH!Thank you for working!
 » 2 years ago, # |   0 Thank you!!
 » 2 years ago, # |   0 Nice, thank you!
 » 21 month(s) ago, # |   0 Thanks a lot !!! Hope this helps me to come out from being stagnant in Grey-Green Zone
 » 21 month(s) ago, # |   0 Good share！ My recent goal is to be a red man,LoL.
•  » » 19 months ago, # ^ |   0 You are a good man who always teach us learn how to solve the problems on codeforces at Bilibili! I love your videos very much! I believe that you coud be the red man and one day I will be the yellow man.
•  » » » 19 months ago, # ^ |   0 As far as I know, a good man is an ambiguous phrase in Chinese.
•  » » » » 19 months ago, # ^ |   0 Sorry for my bad English
•  » » » » » 19 months ago, # ^ |   0 Never mind, it's just a joke.
 » 19 months ago, # | ← Rev. 3 →   0 Thank you!
 » 18 months ago, # |   0 Thank you very very much! I learnt this blog today and this blog is awesome.
 » 17 months ago, # |   0
•  » » 16 months ago, # ^ |   0 Wow...This site looks amazing. Its like A2oj ladders.But I am currently using a2oj ladders.Which one will be better to follow ? Did you use it? Is this be helpful for pupil like me?
•  » » » 16 months ago, # ^ |   0 I just prefer practicing by setting difficulty range from the problemset itself. Are a2oj ladders or this link any better?
•  » » » » 16 months ago, # ^ |   0 Oh...Thank you for sharing your thought.
 » 16 months ago, # |   0 Thank u!
 » 16 months ago, # |   0 Thank you for your tutorial.
 » 14 months ago, # |   0 AtCoder Beginner Contest have problems a to f after abc125 and the practice skills for 1000 to 1400 that you mentioned still holds true for problem b and c on the newer version?
 » 14 months ago, # |   +1 Thank you!
 » 13 months ago, # |   0 E869120 sir I can't solve atcoder beginner contes's problem C...and sometime can solve B.....What i should do?
•  » » 13 months ago, # ^ |   0 You should do what he says to do instead of asking him again.
 » 13 months ago, # |   +1 I am unable to view the document. Can you provide a different method of sharing other than Google drive since for some reason I am unable to open Google Drive links
 » 13 months ago, # |   0 Thank you.
 » 13 months ago, # |   0 mark
 » 12 months ago, # | ← Rev. 3 →   0 E869120 it'd be better if u update the excel checklist that u mentioned in your pdf (better to do it in English)
 » 11 months ago, # |   0 Thanks you!! Your tutorial really help newcomer a lot!!
 » 11 months ago, # |   +8 I think his method will be efficient for me to become specialist in a quick time,I have been doing virtual contests daily in Codeforces and solving A,B regularly but I still haven't been able to solve C during contest time.I have been feeling that something is missing.But I think if I combine his method of solving in AtCoder with my own, it will be really really helpful...Let's see what happens
•  » » 11 months ago, # ^ |   +8 Aim higher, specialist (or even expert) is overrated :|
•  » » » 11 months ago, # ^ |   +9 I know that.I wanna be a red but I think I should try to proceed step by step
•  » » » » 10 months ago, # ^ |   +28 Aim higher, gm (or even igm) is overrated :|
•  » » » » » 8 months ago, # ^ |   0 i'll also do atcoder. coz i think i'm missing something too coz it has been over 7 months of being grey or maybe it's just i'm very very slow learner
•  » » » » » 7 months ago, # ^ |   0 I agree to disagree about this, looking only at CP world.. It's a very good thing to achieve that.. Although that's not at all everything there is to life and that I do agree which I think you wanted to tell.
•  » » » 6 days ago, # ^ |   +3 I think I have a better reply to your statement today 10 months later :The world itself is overrated
 » 8 months ago, # |   0 Thx!
 » 8 months ago, # |   0 According to you what makes AtCoder more beginner friendly than Codeforces ?
 » 7 months ago, # |   0 Wow great blog, thanks.
 » 7 months ago, # | ← Rev. 2 →   0 Thanks for a great tutorial!
 » 7 months ago, # |   0 Thank you!
 » 6 months ago, # |   -14 you said the skills needed to be rating 1900 are follows: brute force dp dfs bfs dijkstra binary indexed tree nCr, nPr mod inverse bitmask binary search in what order would you recommend learning first?
 » 6 months ago, # |   0 This PDF is not opening
 » 2 months ago, # | ← Rev. 2 →   0 Hey! Is this form of practice still beneficial today? Just asking cause the blog is two years old.
•  » » 2 months ago, # ^ |   +8 it will be beneficial even after 5 years