Alternative name: "Road to Master when you don't have time".
Episode 1: August 2024
Preface
I used to be a competitive programmer since ~8th grade. When covid started and we all had more time to solve problems, I actually began to see some progress in cp. I have two bronzes in the UOI (1 place to silver x2, sad). That's not too bad, and I probably don't regret it (though if I could go back, I'd definitely change my attitude).
I always had one milestone: to become a Master (yellow) on Codeforces. As you can see, my max rating is 3 points below Master. Pretty sad. I need to fix that. But a few things happened compared to 2020:
- 4 years have passed.
- I'm in my last year of university.
- I have a swe job.
So, I definitely have much less free time than I did in 2020. This is probably the last period in my life when I have at least some time to improve in cp, and I need to use it mindfully and close all my competitive programming goals (that are still achievable). But it's not all bad; my general intelligence is higher than ever, and my mindset has changed a lot since school, so I believe I can achieve Master in this condition more easily than 4 years ago.
I decided to sacrifice some things to have at least some time. I moved to the village during this grind period, I try not to watch YouTube or surf social media (watch f1 is allowed), I stopped going to the gym, and my city hobbies are temporarily on hold. After all these adjustments, I can say that I spend even more time on competitive programming than I did when I was in school. I currently spend about 3 hours on weekdays and 6 hours on weekends, so that's about 25-30 hours a week (not bad).
But why am I actually wanted to grind/solve again? It’s because Codeforces and other online contest platforms give you some pretty unique emotions that I, personally, don't experience much as an adult. The emotion of competing with other live people is something special. Multiplayer games offer something similar, but to a much lesser extent. And with a side effect — you end up feeling like you’re wasting your life. It’s really an amazing concept: you spend some time progressing (usually about a week), then test yourself in a competition, with the chance to perform better than last time and feel great about it. But to have more positive emotions you of course need to progress in between otherwise it doesn't make much sense. But to have more positive emotions, of course, you need to progress between competitions, otherwise it doesn't make much sense to always lose.
Rust
Few notes about the language I picked. I used to code in C++ back in the day, but I actually returned to cp by accident. I just wanted to do something in Rust because I hadn't used it for a few months. So I decided to solve a few easy problems on codeforces. I liked it immediately and now having so much fun writing my own template.
Goals
- [ ] Master (It is desirable to write a few more cfs after becoming a master, because stoping writing immediately is a loser mentality).
- [ ] Full live Div2 contest.
- [ ] Better then top33 (personal best) in a contest.
- [ ] Solve 2500R during contest.
- [ ] Solve 3000R problem.
I chose yellow over red for several reasons. The main thing: to become red, you need to sell your soul to the devil, forget about writing a thesis, quit your job and practice 5 times more. But we'll see how it goes. The max time I allocate for this is the end of this year. But I expect to achieve master already in October. After this I will be able to fully immerse myself in simracing without any regrets (I hope so).
Practice results
During August, I had about 23 days when I solved some problems. I'm pretty impressed with myself because I can now solve almost any problem if I spend a few hours on it and it doesn't require aho/hld. I remember that four years ago, I would read the editorial after 30 minutes and "copy-paste" the solution without deep understanding. However, my speed has definitely decreased. Like I have this condition: I can solve harder problems in few hours, but I'm slower on easier problems.
I've also changed my strategy a little. Now, I almost exclusively try to solve problems myself without using the editorial. If I can't solve it but understand that with a bit more knowledge in a topic I could, then I schedule this task for two weeks later. I only read the editorial after solving the problem myself because, in my experience, the editorial is hard to understand even if you've just solved the problem (idk why this happens). To workaround this, I solve the problem first :)
A few mini achievements:
- Solved 2800 w/o Editorial (but knew I need to use CRT).
- Solved 2900 w/o Editorial.
- New topics: CRT, tree diameter.
- Remembered many algs and techniques.
- Fully upsolved 3 Div2 contests. In comparison I only had 3 in all my previous years.
Solved problems:
| R | 1800 | 1900 | 2000 | 2100 | 2200 | 2300 | 2400 | 2500 | 2600 | 2700 | 2800 | 2900 | Total |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Count | 5 | 5 | 3 | 4 | 5 | 1 | 5 | 0 | 2 | 1 | 0 | 1 | 30 |
Contest results
Unfortunately, live contests didn't go as well as my problem solving when I'm not hurry up. I knew I could perform well, I believed in myself. But something didn't go as I expected.
| CF | Standings | Pos | Delta | Solved | Few notes |
|---|---|---|---|---|---|
| Codeforces Round 963 (Div. 2) | link | 1517 | +14 | 3/7 | First cf after two years. Not bad start. Was able to solve F2 (2800) after contest. Realized that my speed is not that bad. |
| Educational Codeforces Round 169 | link | 8954 | -119 | 3/7 | +5 attempts. C was too hard for me (1100). I missed one edge case in the implementation, but decided to focus all my time on it. I read E, but I forgot how Sprague-Grundy works. A quick read on cp-algo didn't help because I skipped the part about mex (read only xor). As a result, I couldn't understand how the first pretest even worked. I upsolved up to Problem F. |
| Codeforces Round 967 (Div. 2) | link | 442 | +122 | 4/6 | First good results. Big delta because I was almost cyan before the contenst. I even knew how to solve E1, but didn't have enough time. Solved E2 after contest (2900). |
| Codeforces Round 968 (Div. 2) | link | 825 | +46 | 4/8 | Even though I had +delta, but I hated this contest. There were so much problems and you needed to decide to solve D2 or E1, etc. I am not satisfied with myself, because I have fcked up again with the implementation of D2. After this contest, I started to get a little frustrated that I couldn't show my full potential. But + is +. |
| Codeforces Round 969 (Div. 2) | link | 7497 | -135 | 2/6 | Haaha, I started to think about quiting cp again. Even though I spent 3 attempts to solve A, I solved B pretty fast and had plan to just solve more than others. But then this C come to my eyes. I spent 1 hours without almost ideas. So following tourist's logic I decided to skip D and solve E. I had correct idea but (again) during the contest I wasn't able to implement it correctly. The next day, I woke up and upsolved the full contest without any problems and editorial, I spent maybe 3-4 hours. I'm glad my thoughts of giving up are gone because that would mean I'm a clown. |
| Result | link | Avg. 3847 | -72 | Avg. 3.2/6.8 | Max solved in live: 1900R x2. Yeah, bad start. But the less rating you have, the more rating you'll gain next time, stonks. |
Conclusion
I spent a lot of time grinding cp in August. But it's better than watching videos all day. Even though my live contests aren't going well right now, I believe that contest performance improves after 2-3 months (that's what happened in 2020). "You just wait, sunshine, you just wait". I'm actually starting to see some changes in my mindset too. At work, I’ve begun thinking more about my solutions and what the root cause might be, instead of trying everything immediately. This has had good consequences. As I expected, one month isn't enough to become a master, but I'm surprised at how good I've become at solving problems right away (though it takes more time than the contest duration).
I will continue to practice in the same way: simply solve hard problems that I once could not do, or upsolve my live contests. Maybe I'll write a few virtual ones.
So my goal for the next month is to become a CM and start solving that one extra problem that I couldn't implement right when competing live during this month. See you in a month when I'm purple.
Keep pushing.








I hope I won't leave after this post. That would be so funny.
Bro touched master and quit. Why?
why not?)
Can't speak for him, but to me, over time cf format (problems, the among-friends-competition) becomes progressively worse for past year(s).
Most of my cp friends have retired or rarely do a contest once in few months, so there's no friendly competition anymore, problems do become rather uninteresting and boring (that's just my personal opinion on them). Reaching red/yellow is somewhat a significant milestone, and I don't really see sense to participate in contests which I don't really enjoy doing now, if I don't even have who to compete with on it.
Worth noting, if you take a look at blogs nowadays with there consistently being 2 or more blogs about some random specialist chat gpt cheater at any poin of time, it's not same as what it used to be 3 years ago. Some amount of shitposting was always happening, but there had been a ton more useful content in blogs N time ago.
With all that I genuinely don't see why anyone who finished school and university would have enough reasons to keep doing it.
That's why we have switched to counterstrike)
Are ypu sure that your real reason isnt "being exposed as a cheater"
I still do not see what was exposed as "cheating")
among the three offenses that there were:
1) CodeTON round done from two accounts
Being said it was a genuine mistake, it is still a violation of rules. However nothing was done to gain unfair rating or rank advantage. I did not copy anyone's code, I did not use the other account to test solutions, so what do you refer to as cheating here?)
Moreover, if you care to at least slightly take a look at the incident, and not just take someone's words for indefinite truth, you might want to see submissions of both accounts during the contest and see that I just accidentally submitted a code for B in-contest from the other account, and at the end of the contest of course I did not want to loose rating from that account for this mistake.
Please do not make your thinking abilities look even lower than you already make them look, by claiming I needed to test for wa-2 a code on div2B, or that I wanted to get 2 ton for that round (which was about 4 usd at that time? and is not much more currently).
2) Owning multiple accounts. In which way is that regarded as cheating? Again, that's against the rules, which I do not deny. You might want to check that those accounts weren't active afterwards, though this seems not a thing for you to do before you speak.
3) "Common" div2 contest of 2 accounts. Without many words, you might want to check that the out-of-div2 account was submitting ACs for div2D-E after having AC on the account that was doing the contest.
So, which of these three, exactly, do you want to call cheating?
And why should I care? I am deeply sorry if you are doing codeforces for public opinion, but I used to do it for fun.
1 is cheating. You don't think it matters, but wrong is wrong despite the monetary value.
2 is cheating under the updated rules by Mike. When you use a website, you are expected to abide by its rules. Leave it otherwise. Nevertheless, since it wasn't very explicit before Mike's blog of Zhoukangyang, it is understandable
3 is definitely cheating. It doesn't matter that your other account wasn't officially participating or whatever. Nobody, i repeat nobody, is stupid enough to realistically believe that participating from 2 accounts in the same fucking contest is not cheating.
I am happy you don't enjoy codeforces anymore :) and sorry to have thought you as a friend
Wonder if there are many people who find your maner of communication appropriate and indeed can call you a friend
You're welcome, and maybe try to lower your ego down
At the very end of above speech, here is your deserved "who asked".
Super accurate. I still browse the blogs out of boredom hoping for anything interesting but alas it's usually a split between "how do I practice", "why am I not progressing" and "xyz is a cheater" all by Specialist or lower.
It's sad that zero effort was ever put in improving the blog system — years ago it used to be the leading place to learn stuff.
Same =)
Can't get rid of the habbit to open cf and go through blogs to find something new, but close it disappointed each time huh
Absolutely true. Sometimes there are some hidden gems like this one though :)
Exactly. I don't even bother to look anymore... I would love some way to sort blogs by tag. Like, sometimes you want to read funny shitpost or a joke, but sometimes you want to see a quality blog (doesn't have to be educational or anything, just high quality blog that has at least some thought put into it).
This looks really interesting. I read through some of your contest notes, and your positive attitude is quite admirable, despite undesirable performances. Good luck with your goals man.
Good luck man! I hear you about the online games part. I wouldn't say it feels like I'm wasting my life, it just feels like they require too much energy these days. Also, Rust is pretty cool.
But also, perhaps you don't need my advice, but I want to add that it might not be the best idea to stop working out. It is an easy way to fall into an avoidable depression.