### E869120's blog

By E869120, 4 years ago,

Dear Codeforces Community.

Today I want to share some ways to practice competitive programming and getting rating. I think this is helpful for those who is practicing competitive programming hardly but rating is sluggish. (By the way, on July 17th, I have a project of competitive programming said CombNaf in Japan. I did a lecture about this. Great thanks to the CombNaf's organizer is nafmo2.)

I will write this by 4 steps: rating 1000 --> 1250, 1250 --> 1500, 1500 --> 1750, 1750 --> 2000, in Codeforces Rating System.

Before writing about each step, I wrote it as premise: You don't have to do this way. This is just a way to practice. Ways to practice is different among people, so I think this may not the best, but I hope this is useful.

### Step 0: Some types of contest (A knowledge)

In order to explain step 1-5, I wrote about the types of programming contest.

Codeforces

• This judge. There are Div.1 problems and Div.2 problems. The number of contest is mainly 5-6.
• The problems of Div.2 said Div2 A, Div2 B, Div2 C, Div2 D, Div2 E,... in order.
• The problems of Div.1 said Div1 A, Div1 B, Div1 C, Div1 D, Div1 E,... in order.
• Problems are sorted by difficulty in each contest.

AtCoder
• There are ABC (AtCoder Beginner Contest) / ARC (AtCoder Regular Contest) / AGC (AtCoder Grand Contest) in AtCoder, but in this blog I will explain about ABC / ARC.
• There are 4 problems in ABC and ARC.
• Each problem in ABC is said ABC-A, ABC-B, ABC-C, ABC-D, and each problem in ARC said ARC-C, ARC-D, ARC-E, ARC-F.
• Problems are sorted by difficulty.
• In each contest, ABC-C and ARC-C is the same problem, and ABC-D and ARC-D is the same problem.

TopCoder
• There are Div.1 and Div.2, and there are contest for each division.
• In Division 2, there are three problems, which is said that Div2 Easy, Div2 Medium, Div2 Hard.
• In Division 1, there are three problems too, which is said that Div1 Easy, Div1 Medium, Div1 Hard.
• Easy is the easiest question of three, and hard is the hardest question in these three as naming.

### Step 1: Rating 1000 --> 1250

In order to gain rating from 1000 to 1250, you should solve at least one problem in Div.2 contest in Codeforces. In AtCoder, 300 points problem is the level of rating 1100-1250. So I suggest these two ways:

• Solve Div2 A 50 problems. When you solved 50 problems, you might be able to solve >80% of Div2 A.
• Solve ABC-C in AtCoder. There are many educational problems in AtCoder Beginner Contest.

In order to solve problems, you should make a Bingo like example.
In addition, most of these problem is easy, especially concept. So you should see editorials if you can't reach idea 10 minutes.

### Step 2: Rating 1250 --> 1500

In order to gain rating from 1250 to 1500, you have to solve at least 2 problems faster in Div.2 contest. In addition, the level is as same as TopCoder Div2 Med and AtCoder ABC-D. (ABC-D is little high level for 1250) In addition, there is many educational problems in AtCoder, there is some point to do fast-solving practice in TopCoder, and Codeforces is the target judge. So I suggest these three ways:

• Solve Div2 B 50 Problems. (Most of problems are good quality)
• Solve Div2 Med 50 Problems. (The quality of problem is good, but Java Applet is inconvenience...)
• Solve ABC-D / ARC-D in AtCoder. (A little high level for 1250)

In addition, I think that you should mind fast-solving in latter problems. (After solved 15-30 problems)
In order to mind fast-solving, you should use timer. You should count from "opening problem statement" to "getting AC". If you can, I think that you should make a spreadsheet of problem, solved and time.

### Step 3: Rating 1500 --> 1750

In order to gain rating from 1500 to 1750, you have to solve at least 3 problems faster in Div.2 contest. There are a lot of concept problems in Div1 A = Div2 C, and in Div2 only contest you have to solve as fast as possible. I made a table of judge and points to see what to solve easier.

Judge Concept Imprementation Fast solving Level
Codeforces Div2 C 50% o 50% 1500-1800
TopCoder Div1 Easy o x o 1500-2000
AtCoder ABC/ARC-D 50% o 50% 1400-1600

I suggest these two ways to improve rating as far as see the table:

• Solve Div1 Easy and Codeforces Div2C as the same period. I think if you solve <50 problems for each type, your rating will increase strongly, but I suggest you should solve until satisfied yourself.
• First solve ABC/ARC-D in AtCoder until solve 80% of ARC-D. Second solve Div1 Easy in TopCoder for concept-practice or fast-solving practice.

My rating increased sharply when I started TopCoder Div1Easy, and solved ~50 Div1Easy problems. This is why I suggest TopCoder Div1 Easy for concept-practice.
In addition, you should use timer for practicing fast-solving. You can use competitiveprogramming.info to solve TopCoder Div1Easy, and you can make spreadsheet like following picture to solve TopCoder. (This is example of Div1Med that I am using.)

### Step 4: Rating 1750 --> 2000

This is the last step that I can write. In order to gain rating 1750 to 2000, first you must go up to Div1, and you have to compete a little better in Div1. You have two steps, so I divided into two range.

1. Rating 1750 --> 1900
You should solve Div2C faster and stably. So I suggest that practice these two:

• Overcome your weakness (For example, DP problems, Graph Theory, Imprementation, etc.)
• Make your library (For example, RMQ, BIT, Segment-Tree, etc.)
I think making library is good because you can shorten the time that writing RMQ class, BIT class, etc.
And to overcoming your weakness, I suggest that analyze your time in contest and practice, scoring and make a spreadsheet as follows:

2. Rating 1900 --> 2000
This step's range is only 100, but I think this is difficult as far as see A mystery of CF rating distribution. There are many people in [1900, 2000), but there aren't many people in 2000+. In Div1, there are many concept-main problems. So I think these two are useful for practice:

• Codeforces Div1 B. In the story, the goal is becoming 2000+ in Codeforces. So practicing in Codeforces is the best too to get rating in CF.
• AtCoder ARC-E. ARC-E is 600-900pts in AtCoder, and this is level of rating 1900-2200. In addition, these problem is very like to Codeforces.

These problems are so difficult, so I suggest that you should give up and see the editorials if you can't get any idea though you try over 80-150 minutes. In addition, ARC-E is difficult for 1900, so I think you don't have to mind fast-solving.

### Step 5: Extra corner

In extra corner, I suggest two ways to compete well in Codeforces. This is also out of the problem-practice, but I think this is effective. (I did this and I feel this is effective.)

• Do Virtual Contest / Virtual Participation in Codeforces. This is a way of get use to contests.
• Take a rest for 10 minutes before real contests. This is a way to not get panic in the contest. It is also important in the contest on the mental side.

### Conclusion

I suggest that five steps to practicing competitive programming. Ways to practice is different from a person to a person, so I don't think you must do this way. But this is one of the effective way I guess. (I think this is not the best because the way to fit is different among people.) I hope it will be useful even a little. (Also, sorry for my poor English.)

Please comment if you have suggestions and questions of this entry, and my way to practice.

• +181

 » 4 years ago, # |   +22 But sir , If everyone read your post and star solving according to your advice , then is it possible to get high rating for all?? As codeforces rating system says The summation of rating of contestant is equal before and after contest :)
•  » » 4 years ago, # ^ |   +6 Actually, no. Given the same resources, different people will use it differently. Given that everyone practices the same problemset, some may still turn out to be better than others because people understand stuff and think differently.
 » 4 years ago, # |   +88 There is another way around. Get to Div1. Solve Div1 E problem. profit.
•  » » 4 years ago, # ^ |   -10 I know you solved only problem E in Codeforces Round #415, and your rating increased. But do you think your rating always increases if you just solve Div1 E problem? I don't think so, because there are "Div1 A and B is easy, and Div1 C is easier than normal" contest.
•  » » 4 years ago, # ^ | ← Rev. 7 →   +10 Not always the case. In AtCoder I solved ARC-F once and ARC-E twice (usually I do not solve E until I completely give up on F, which happened few times so far) and my rating range is 600-1200 :/Edit.And the problem there is the fact, that the point differences do not reflect the difficulty increase. Quite often solving C and D is worth more or the same as E and sometimes even more than F. So if I managed to solve F or E I do not have time to solve both C and D.In CF a point value decreases with time. So if you are not quite fast, you can get lower score than solving A+B fast.Edit2.As regards AtCoder. The idea of a point value is: AtCoderPointValue/2 = TCPointValue. And even though solving 2 x 250 pts in TC is nowhere near solving 500, that problem does not exist, as there are 3 problems only and each problem is worth more than the sum of all easier problems. In AtCoder there are more problems, so you could get a higher score by solving more simpler problems.
 » 4 years ago, # |   +113 [Tutorial] A Way to get high contribution: From 0 to 100Write 'bout bullshit.
•  » » 23 months ago, # ^ |   0 I have -4 contributions after following your advice.
•  » » 2 months ago, # ^ |   -8 $I$ $don't$ $know$ $how$ $to$ $do$
 » 4 years ago, # |   +45 Will there be a follow-up post on how to get from 2000 to 3000?
•  » » 4 years ago, # ^ |   -18 In fact, I did a lecture in CombNaf, which is one of the programming event in Japan. The tutorial that I used in CombNaf was from grey to red because my rating is AtCoder was middle of orange then. (Link) But this is Japanese version, so I have to translate from Japanese to English. In this process, I decided to change the target from AtCoder to Codeforces. But my rating is 2051, middle of purple. So I thought that I cannot write how to practice for red then in CF Version. But these days I'm praciting TopCoder Div1 Med for becoming red. There are a lot of concept-main problems in TopCoder Div1Med.
 » 4 years ago, # |   +6 Thanks for the article E869120! It seems really useful and I might give it a try but I would like to clarify some things before I start.I just had some questons:1) I was not aware of AtCoder but it seems AtCoder's contests have tasks A,B,C,D ..., so what do you mean when you say "ABC-C in AtCoder."? Do you mean to solve tasks A, B, and C? Then what does the "-C" refer to? Also in step 2 you say "ARC-D in AtCoder", what is "R" for?2) How exactly can the bingo approach help us in step 1? Is it to solve at least 5 problems horizontally, diagonally or vertically? What's the point of your middle box with the "Is it rated?" question?3) What do you mean exactly with the "o" and "x" in the table of step 3?Thanks :)
•  » » 4 years ago, # ^ |   +7 Answer to 1: There are 4 problems in ABC. (ABC-A, ABC-B, ABC-C, ABC-D) There are 4 problems in ARC. (ARC-C, ARC-D, ARC-E, ARC-F) In ARC/ABC (like Div.1 + Div.2 contest in CF), ARC-C and ABC-C, ARC-D and ABC-D problem are the same. And "ABC/ARC-C" means that you should solve the first problem of ARC (ARC-C) / the third problem of ABC (ABC-C). ABC-C problem and ARC-C problem is the same in each ABC/ARC contests. Answer to 2: The bingo rule is 5-in-a-row like this problem. Horizontally, diagonally and vertically are all OK The bingo helps your motivation up. (For example, if you solve 5-in-a-row, you get point) I made the bingo randomly in Codeforces Round #369-#424, so "Is it rated?" middle cell is only a coincidence. Red / Yellow / Green cell color is only a decoration. Answer to 3: o means that the effectivity is high for concept-practice etc. x means that the effectivity is low for concept-practice etc. 50% means that the effectivity is medium for concept-practice etc. Sorry for my poor English. Thank you for reading my post.
•  » » 4 years ago, # ^ | ← Rev. 2 →   +33 "That's why I keep saying becoming a red coder is the start of competitive programming." I've been lying myself for a couple of years then XDNo, seriously, I liked what you said :) It's a little bit extremist I would say but I like it haha, even though I'm not red -yet-.I would like to know if some top coders feel the same way as you. I feel that something that can help you develop intuition is to explain things to others. (but again, I'm not red xD)
•  » » 4 years ago, # ^ |   +10 "Legend rank is the beginning of true cultivation"
 » 4 years ago, # |   +2 Has anyone else also tried this and it worked?
•  » » 4 years ago, # ^ |   +61 So you expect someone to increase rating from 1000 to 2000 within 26 hours.
•  » » » 4 years ago, # ^ |   0 I meant if someone has tried this way before this blog came up and had good results.
•  » » 4 years ago, # ^ |   -35 Been doing the same thing for months now, not improving very well, I am just a specialist now(In real account).
•  » » » 4 years ago, # ^ |   +3 An imaginary account getting real downvotes. :)
•  » » » » 4 years ago, # ^ |   -12 Now, that's what I call complex.
 » 4 years ago, # |   +16 I wrote this comment because 1 month passed after published this blog. Actually, there are many people who wrote a blog which is about "How to achieve 2000+ rating?" or something that relate about rating 2000, from a few years ago to now. Here is the example: Abhi_Sarkar1996's blog, 8 hours ago, Link anuj.charm's blog, 3 weeks ago, Link chessmaster's blog, 8 months ago, Link hepaxorm's blog, 14 months ago, Link Needless to say, this is only my opinion, but I found there are many people who want to gain to 2000+ rating, including after this blog published, so I recommend to read this blog article carefully. (I did not say that you should do for this way)
 » 4 years ago, # |   0 This issue gives me the most trouble.
 » 4 years ago, # |   +5 To make sure we all understand the core of the post. Hardly practicing means almost no practicing. Is that what you wanted to say?
•  » » 4 years ago, # ^ | ← Rev. 2 →   +5 Well, I think this blog is targeted to person who thinks like "I like programming contests, I want to learn competitive programming and get high rating". I think they will practice hard — but quality of practicing hard is also very important. He would like to say for Codeforces user "Only just solving Codeforces problem is not very good — solve the main three (Topcoder, Atcoder and Codeforces + OI?) is better." (I don't know other judge but combination of these three is very good). I am risking that the Topcoder competitive programmer is decreasing and people might forget Topcoder, but it is still the best way of growing "thinking solution" skills, as he mentioned. Also, he's saying that gray and green is very different, green and blue is very different, and also blue and yellow is very different. So the better way of practicing is different if rating is different. I think the main point is these two (but also other things or extra corner are written so you can read from it). Did you get it?
•  » » » 4 years ago, # ^ | ← Rev. 3 →   +3 It is too bad about topcoder. This blog finally motivated me to create a TC account. The problems were of course nice but I am not going to spend an hour learning how to submit solutions and deal with their host of UI problems. It makes me wonder how it got so popular in the first place.
 » 4 years ago, # |   +3 Could you please give the spreadsheet of Topcoder div1 easy.
 » 3 years ago, # |   +16 Please write blog on how to go from 2000 to 2200 now, thanks!
•  » » 3 years ago, # ^ |   +8 I'll post about the way from 1900 to 2200, within 2 weeks. Coming Soon!
 » 3 years ago, # |   +3 Did anyone go from 1500 or so to 2000 with this?
•  » » 3 years ago, # ^ | ← Rev. 4 →   0 I read parts of this [book](https://en.wikipedia.org/wiki/Outliers_(book))Based on his research the author concluded that to improve we need the right level of challenge. If its too easy you don't improve, if its too hard you give up. I think this current article is just about that principle put to use.The wiki page talks more about his 10,000 hour rule for being the very best.
•  » » » 2 years ago, # ^ |   0 yes i read that 10,000 hour rule in a book called 'Mastery' But it also says that your '1hour' after lets say 1000 hours of practice is different from your '1 hour' as a beginner...also it takes 10,000 hours to makes all the necessary connections in brain required for being a master, it takes 20,000 hours before achieving something really remarkable... i really regret not knowing about competitive programming earlier..
 » 3 years ago, # |   0 Does this work after division revolution?
•  » » 3 years ago, # ^ |   +3 I think some people who can solve problem faster could go to 2100 in this way because they can participate in Div2 contest. Although this, participants whose rating is 2099 should get <=200-th place in div2 contests to gain rating (Top 4% of all participants), and there's much risk to drop 100+ rating in single contest for them. So, after division revolution, I think some people whose result is unstable might not reach 2000 in this way.
 » 3 years ago, # |   0 "In each contest, ABC-C and ARC-C is the same problem, and ABC-D and ARC-D is the same problem."I think,here you wanted to write ABC-C == ARC-A & ABC-D == ARC-B .
»
3 years ago, # |
+40

### Tutorial: From Rating 1900 to 2200

Finally, I wrote the extension version of this blog, from 1900 to 2200. I wrote it because I achieved 2200 recently.

I hope this is useful for many people.

•  » » 3 years ago, # ^ |   +5 Dude, thank you very much!!!
 » 3 years ago, # |   0 I See That You Started Problem Solving in Codeforces From 2017 And Now Your rate is 2212....How did you train to be in that rate in one year ?
•  » » 3 years ago, # ^ |   0 I think he had some external training. Like regional websites and other sources, or great math background. Otherwise you can't just train hard and get to such a level in 1 year.
•  » » 3 years ago, # ^ |   0 He started codeforces late. Actually he (and I) already started to compete in topcoder, 2.5 years ago.
•  » » » 3 years ago, # ^ | ← Rev. 3 →   0 deleted
 » 3 years ago, # | ← Rev. 2 →   +3 Actually, my document has read by 170+ people. It was higher than estimated. Again, thank you for reading my new document which is from 1900 to 2200!!!!! Hope it is usable. E869120
 » 3 years ago, # |   0 I have not understood the idea of Bingo. Can anyone explain please ?
•  » » 3 years ago, # ^ |   0 select some random div2a problems and make a bingo like this one. The goal is to solve at least one row/column from it.
 » 2 years ago, # |   +7 Finally — now it is only 1 rating to write a new blog, "To become a red: A way to practice competitive programming, from 1500 to 2400". When I become a Grandmaster, I will write a blog in Codeforces. In this blog, I want to share and explain all the way that I used, to become a red-ranked coder. For example, practice method, used online judges, problems which is very good at practice, and some other information. In the same way of my previous tutorial blog, I will explain in stages — because one of the best way of practice varies by color. Again, I'm looking forward for sharing a blog. We hope you'll be looking forward to it.
•  » » 2 years ago, # ^ |   +1 Will you write a new blog or you will extend it?Wish you become red soon.
•  » » 2 years ago, # ^ |   0 when will you publish the blog ?
•  » » » 2 years ago, # ^ | ← Rev. 2 →   +22 I think it's not so far. He caught flu few days ago and it's almost recovered. Also, note that we have some preparations for coming contest which we wrote some problems.
•  » » » » 2 years ago, # ^ |   0 While your brother has the flu you have time to beat him in informatics.
•  » » » » » 2 years ago, # ^ | ← Rev. 2 →   +10 square1001 had already beaten all participants and virtual participants (including his brother) in round 533 :)
•  » » » » 2 years ago, # ^ |   +13 Now I recovered flu and I started writing. Now 25% of blog has completed. I think that sharing will be April 29th.
•  » » » » » 2 years ago, # ^ |   +18 it passed more than a week and still.....
•  » » » » » » 2 years ago, # ^ | ← Rev. 5 →   +29 Sorry for delay, but due to family reasons (sudden trip from 4/30 to 5/3 and some schedule), it was delayed. I am writing now, and the progress is 77%. (14 out of 18 pages) Hope I can publish by tomorrow :) UPD 1: 95% Finished. UPD 2: 100% Finished to write. There are grammer fixing / revising tasks that I will do tomorrow, so the publishing time of blog is going to be May 7th, 18:30 UTC+9. Sorry for long waiting. UPD 3: Published! Link
•  » » » » » » » 23 months ago, # ^ |   +10 Your method helped me, anyway. Don't rush)
•  » » 2 years ago, # ^ |   +15 15 point to add from 2400 to 2600 ( ဖ‿ဖ)人(စ‿စ )
 » 2 years ago, # |   0 when can i participate in live codeforces rounds?
•  » » 2 years ago, # ^ |   0 when they are held
 » 2 years ago, # |   +13 And how about practicing for international olimpiads?
 » 23 months ago, # |   0 Hey, this blog seems very old. I can solve 2 problems of div2 but I am not able to get a rating above 1250. And the distribution of question according to divisions have been changed a lot. Can someone give a link to any latest blog?
•  » » 23 months ago, # ^ |   0 You need to solve A and B under 10 minutes.
 » 20 months ago, # |   +3 I know it's a bit late, but how can i filter out div2 A problems? Thanks!
 » 20 months ago, # | ← Rev. 2 →   0 DropOfTheSea I find this thing a little bit helpful for us.
 » 20 months ago, # |   0 It works :), solving only D1B. Thanx a lot!!
 » 20 months ago, # |   0 can anyone help me to find any contest on Topcoder?
 » 12 months ago, # |   0
 » 12 months ago, # |   0 Thank you, really good advice!
 » 12 months ago, # |   0 Thanks a lot for good post..i think its very helpful for beginner .
 » 12 months ago, # |   +3 Solving TopCoder Problems is a real mess looking at their interface now.
 » 11 months ago, # |   0 After solving more than 150 Div2 — A problem, Sometimes I stack during contest time. Can I improve only by practicing or any other tips?
 » 10 months ago, # |   0 Now This is very difficult(I think impossible) to gain 1200+ rating only solving 1 div2 problem in codeforces. Competition is so hard now.
•  » » 10 months ago, # ^ |   +14 then solve 2 problems
•  » » » 10 months ago, # ^ |   0 Yes,Thats fine.I also want to say this.