PaciukZvichainyi's blog

By PaciukZvichainyi, 2 weeks ago, In English

Alternative name: "Road to Master when you don't have time".
Episode 1: link
Episode 2: link
Episode 3: link

Chat is this real? You've done it.

I still feel like a looser. 2102 is a worthless rating. If I only had 2200 — that would be a completely different story.

Practice results (03.08.24-12.01.25)

  • Rating: 1717 -> 2102 (+385)
  • Min-Max Rating: 1612 -> 2102 (+490)
  • Top rank: 39
  • Virtual rating: 2132
  • Solved problems: 963 -> 1334 ~= 371
  • Contests official: 27
  • Max delta: +163
  • Min delta: -136
  • Highest problem solved: 3200
  • Friends: 55 -> 128 (+73)
  • Contribution: 0 -> 55 (+55)
  • Fully upsolved contests: 30 -> 83 (+53)
  • Max rank before/now: 33/39
  • Max solved during contest: 2300
R 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3200 Total
Count 23 25 11 19 34 9 16 9 11 9 3 2 1 172

Goals restrospective

I had next goals defined in Chapter-1:

  • [+-] 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.

Things I wish I knew before

Read at your own risk. This is just my experience.

My spreadsheet with all data I've collected (unfortunately my comments, mentioned below in p.2, are not shared): link

  • Track all hard problems I've solved.
    This is actually what I started doing at the very beginning, and it was the right decision. You don't need to write all problems because you'll get tired of writing all 800 very quickly. For me, I only tracked 1800+. If I started now, it would probably be 2100+. It doesn't give you wings or superpowers, it's just a nice feeling (like when you track all movies you've watched).
  • Summarize what you learned.
    If you solve a hard problem or read an editorial and learn something new – write it down, save it somewhere. You probably won't go back and reread it, but it will help you put the problem into perspective and think about whether you really learned something or if you're already smart enough (that's also nice to know). It could be a new topic, but usually you just write something like this (helps you remember new tricks better):

    1. You can get kth element using two priority queues (aka BTreeSet) instead of Segment Tree.
    2. 1 is not a prime number.
  • Stress testing.
    Without this I would still be in the stone age. Nothing more to add. Writing a brute force solution and comparing it to a faster solution is a superpower. Use it. Especially when you practice.
  • Disable problem statistics.
    This includes: rating of a problem, the number of people who solved a problem, tags. You just think and behave differently when you know that the problem is easy/hard.
    To disable number of people I use adblock filter:

    codeforces.com##A[title="Participants solved the problem"] # hides the number only on the main contest page (standings page is ok) codeforces.com##DIV[class="recent-actions"] # hides recent cf blogs on the main page

Resources I've used

Is it worth it

For sure.
Would I do it again if I knew how hard it was and how long it would take? — Not sure.

The most important thing about this whole challenge for me is not the "master" badge itself. Yes, I closed one of my gestalts. Yes, I added it to my resume (in fact, it was one of the main reasons I started this journey, cm is not solid for resume). But the biggest thing I gained from it was a new mindset. We hear the phrase "you can achieve anything if you try hard enough" almost every day in various forms, but I finally felt it firsthand. Now I understand for sure — the main part of success is "consistency". You will never achieve anything worthwhile in such a short period of time. Even these 5 months are a joke in terms of greatness (that's why I'm only a master, not gm). Bruh, I tried so hard not to write motivational crap, but here we are, sorry)

Codeforces rewards

The funny thing is that I never thought of quitting this challenge. I always just opened cf and solved not the easiest problems for me. I think codeforces reward mechanism is incredibly good. We can learn from it and integrate it into real life.

You always get a reward after some effort. If you solve a difficult problem on your own, you get a lot of dopamine, if you solve it with an editorial, you get almost no dopamine. That's why I always wanted to solve without help. It's a way you improve. You just visit this website to get a few "Accepted", but in the meantime you also improve (a nice bonus). Then there are contests usually once a week where you can check your progress and get a lot of emotions. It doesn't even matter if it's positive or negative, you just feel alive.

How can we translate this to other goals (on a sport example)?

  • Accepted. We should definitely get dopamine from every workout.
    Are we bored with our workout? Change it immediately.
    Like I used to do when I grind. At first I only solved difficult problems. Then it got boring, and I started writing virtual contests because it was fun and I could track progress using cf-anytime. Then it got boring, and I found ThemeCp. And this list can go on and on. The main thing is that if I didn’t like some way of practicing, I changed it. Otherwise, I just didn’t want to solve anything (regress).

  • Contest. We need to have test days and get even more dopamine from it. Once a week/month we need to do a certain procedure/routine to check if we have become stronger in it. As we do with contests. We will not always get better results in this during various factors, but we will see our strengths and weaknesses and change our training process accordingly. And most importantly – we will understand that we have come closer to our goal. The point is to compare ourselves with our old selves.

  • Ranks. Split a goal to milestons.
    CM/Master/IM/GM => bench press 80kg, 90kg, 95kg, 100kg.

Fate

Life is an interesting thing tbh. If I had only gotten that +3 in 2020 I would be a completely different person, I wouldn't have taken on this challenge and so on and so forth. Every damn fart changes your future. It's crazy.

But as we all know: everything that happens is for the best.

What's next

Nothing.

It's really interesting, when I solved a lot — I couldn't force myself to stop. But after I stopped and decided to take a break — I can't force myself to continue.

At first after becoming a master I thought: I need at least 2200, so I didn't plan to stop. But after a few days without solving problems — I'm happy. Finally my life is interesting, because I'm doing something other than codeforces all my free time. I don't want to go back, at least not yet. I just want to be happy again. This is probably a complete mistake because if I plan to come back later, almost all of my skills will be gone. And I don't want to "participate in unrated contests only" because that doesn't make sense, I won't try hard enough, so after 30 minutes I'll turn it off.

There are many other things I need to try and master before my main contest (life) is finished.

Todo list (maybe one day):

  • IM on virtual contests
  • 2200
  • Win T-shirt
  • Live full div2
  • Beat personal best top33
  • Problemsetter (not sure about this, it takes inhuman effort)

Special thanks to 123gjweq2. He always commented on my posts when I achieved something and wrote me few motivational DMs <3

Stay hard.

  • Vote: I like it
  • +80
  • Vote: I do not like it

»
36 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

Would u recommend themeCP+contest upsolving a good combo for improvement?or one should also use other practice methods

  • »
    »
    36 hours ago, # ^ |
      Vote: I like it +3 Vote: I do not like it

    That's basically all I did (mostly upsolving).

»
35 hours ago, # |
  Vote: I like it +8 Vote: I do not like it

Congratulations man! Imo, that is definitely an interesting thing. Whenever people achieve their goals, they are happy for a bit, but then they always look to the next goal. It reminds me of that campfire story from Apocalypto. But maybe this tendency is not necessarily a bad thing; perhaps it is what made people progress so much in the first place.

Either way, if you do decide to take a break for now, I wish you the best in the other endeavors you pursue. Also, I must say that that is a neat trick with the BTreeSet. I tried not to touch that set, because HashSet and HashMap are noticeably faster at $$$n \ge 10^5$$$ I always used the BinaryHeap, but it got kind of cumbersome sometimes cuz it is only a max heap. There is also a great SortedList() template somewhere online, which can do the job of a multiset, heap, even deque if you format the data correctly. Well it can do a lot of things because it has $$$O(\log n)$$$ insertions, deletions, and indexing. The only problem with it is that it takes a huge amount of memory, so you can only use maybe $$$10\,000$$$ at a time.

»
28 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

I gotta say that I'm super impressed by your graph. The amount of times you were almost going to reach master but fell back, and never gave up until you reached what you wanted. I'm no master, but honestly, you deserve that break. Gl in your next chapter bro.