I have been struggling to reach Candidate Master for a while, and in today's contest, this happened:

Feeling very sad. Hoping to reach CM in the next round...

Jokes aside, thanks to all the amazing problem-setters that make problems for this platform. Also, thanks to all my fellow contestants, we push each other to do better in every contest : )

If you feel stuck at a certain rating range, remember that with enough practice (and the right kind of practice) you CAN move forward!

Spoiler

• +520

 » 3 days ago, # |   +84 my deepest sympathy goes out to you at this difficult time Spoiler
 » 3 days ago, # | ← Rev. 2 →   +35 No degree Buff is real ᓚᘏᗢ Congrats :) well deserved !!!
 » 3 days ago, # |   +34 This is one of the moments of all time.Orz
 » 3 days ago, # |   +30 My condolences for your loss
 » 3 days ago, # |   +24 Be strong, such hard times will pass.
 » 3 days ago, # |   +35 This Is So Sad Alexa Play Despacito
 » 3 days ago, # |   +19
 » 3 days ago, # |   +10 Well deserved win.
 » 3 days ago, # |   +18 DreadArceus ORZ.
 » 3 days ago, # | ← Rev. 2 →   +25 here is the image linktried but failed to attach the image
 » 3 days ago, # |   +9 <⁠(⁠￣⁠︶⁠￣⁠)⁠↗
 » 3 days ago, # |   +66 I actually did the same 3 years go, but one day after the ending of contest it was made unrated :/Congrats anyway, enjoy master while you can!
•  » » 3 days ago, # ^ |   -39 Nobody cares about international master, it is the same color :)
 » 3 days ago, # |   +16 I wish if I could be sad like you
 » 3 days ago, # |   -39 _______________________डिस इस सो सैड| 😞 😞 कैन वी हिट १०० likes ??________________________👉👉👆👆
 » 3 days ago, # |   +9 Your rating graph motivated me.
 » 3 days ago, # |   +164 Mad respect for getting master with THIS UNHOLY SNIPPET OF CODE IN ALL YOUR SUBMISSIONSif (rng() % 100000 == 0) assert(false);
•  » » 45 hours ago, # ^ |   0 I don't know. Can you please tell me what this snippet of code mean?
•  » » » 33 hours ago, # ^ |   +14 The program will raise a runtime error if rng() returns a 100000 multiple
 » 3 days ago, # |   +26 This won't age well when I drop to CM next rated contest The worse thing would be if you'll drop back to expert :)
 » 3 days ago, # |   +8 I wish you best of luck on making candidate master in the next contest!
 » 3 days ago, # |   +10 Suffering from Success xDCongrats!
 » 2 days ago, # |   +13 I am so happy seeing this blog tho, good luck in your next contests & keep it up, red is waiting for you <3
 » 2 days ago, # |   +16 I am feeling very sad too, jumping constantly between expert and cm in the recent 8 contests:(
 » 46 hours ago, # |   +11 Congrats!
 » 46 hours ago, # |   +8 Gratz man
 » 42 hours ago, # |   +8 Can you please suggest me the right kind of practice (you mentioned) for moving forward?
•  » » 40 hours ago, # ^ |   +28 I did not mean to say that there is one right kind of practice for everyone. You must figure out the method(s) that work for you by trying out whatever seems interesting.I can describe my problem-solving ideology over the last year for you. Try picking anything you like and adjusting it to yourself.First of all, tags off, too many spoilers about problems in there for me.I adore randomized algorithms, so I decided to follow the logic that if I do a certain amount of random problems of some rating, I will eventually be confident with solving problems of that rating.I did 50 1900s, then 69 2000s, then 50 2100s, and then finally 50 2200s. While doing these, I did not look at the editorial, even if a single problem took days (with 3-4 exceptions).Around my most recent return to contests, I did random problems from the rating range 1800-2200 (first choosing the rating with equal chances and then the problem), but what I had learned from my earlier randomized practice was that older problems could be much easier, so I included another parameter, the minimum contest ID (at first I kept it as 1000 but later I changed it to 1500).Now that I had confidence in my ability to solve these problems, I wanted to target solving them fast, so I set a time limit of one hour. If I failed a problem within that hour, I saw the editorial. Also, I did not know the rating of the problem while solving it (so it mimics the moment of attempting a D/E in a div2 contest).Be sure to check out how other people practice as well.Hope this helps!
•  » » » 40 hours ago, # ^ | ← Rev. 2 →   +8 Thanks man for you suggestion. Can you tell me one last thing that,With this newbie tag of mine,Should I focus on just implementation based problems or DSA based problems, for now?
•  » » » » 40 hours ago, # ^ |   +5 I would say do whatever interests you more, but if your target is to increase your CF rating, you do not need to practice any DSA for now. When you reach that point, you will start to notice it.
•  » » » » » 40 hours ago, # ^ |   +13 Thanks Again bro.Wish you good luck for your future.
•  » » » 24 hours ago, # ^ | ← Rev. 2 →   0 I did 50 1900s, then 69 2000s, then 50 2100s, and then finally 50 2200s. While doing these, I did not look at the editorial, even if a single problem took days (with 3-4 exceptions).Thanks for the reply. My questions are — 1.How during this routine, you managed to know, if you needed to learn something/ a new concept to solve the problem? How did you select the problems.Ex — inputting the range and then top 5? Thanks a lot.
•  » » » » 23 hours ago, # ^ |   0 I enjoy DSA, so I was familiar with most "concepts" (like Segment Trees, SCC, LCA, and even maximum flows at a black-box level) before starting with the 1900s. However, there were times when I did not know the concept involved (the few exceptions I mentioned). In such cases, I took help from my friend shiviDON. He would look at the solution and let me know some keyword(s) to proceed.I selected the problems randomly, using a discord bot and, more recently, my website (both using the CF API).
•  » » » » » 19 hours ago, # ^ |   0 Is your website available to public? Thanks for the answer.
 » 41 hour(s) ago, # |   +14 Actually, your solution to the problem E uses a bit wrong sqrt decomposition, because of the following case: Consider bamboo consisting of $2000$ nodes. To the node number $2000$ we'll pin another $1000$ bamboos of length $98$. All queries are different and from the last layer. In this case solution stores every pair of visited nodes in the map, which is $q * 98$ = ~$10^7$. And $10^7$ map operations taking just too long. Your code with such testcase#include using namespace std; #define int long long void solveCase() { int n, q; n = 100000; q = 100000; vector a(n); for (auto &i : a) i = 100000; vector p(n, -1); vector> tree(n); for(int i = 2; i <= 2000; i++) p[i - 1] = i - 1; for(int i = 2001; i <= 3000; i++) p[i - 1] = 2000; for(int i = 3001; i <= n; i++) { p[i - 1] = i - 1000; } for (int i = 1; i < n; i++) { p[i]--; tree[p[i]].push_back(i); } vector dep(n); const auto dfs = [&](const auto &self, int u, int d) -> void { dep[u] = d; for (auto v : tree[u]) self(self, v, d + 1); }; dfs(dfs, 0, 0); map, int> store; int x, y; x = 99000; y = 99001; long long ans = 0; while (q--) { y++; if(y == n) { x++; y = x + 1; } const auto recur = [&](const auto &self, int32_t x, int32_t y) -> int { if (x == -1) return 0; if (dep[x] > 1000 && store.count({x, y})) return store[{x, y}]; int res = self(self, p[x], p[y]) + a[x] * a[y]; if (dep[x] > 1000) store[{x, y}] = res; return res; }; ans += recur(recur, x, y); } cout << ans << "\n"; } int32_t main() { mt19937 rng((unsigned int)chrono::steady_clock::now().time_since_epoch().count()); if (rng() % 100000 == 0) assert(false); ios::sync_with_stdio(false), cin.tie(NULL); solveCase(); } So if the testcases were strong enough, you would probably have reached CM.
•  » » 40 hours ago, # ^ |   +27 Yeah, I got hacked a couple of hours ago. Such a sad missed chance to finally reach Candidate Master : (Also, Thanks for explaining the case to me!
 » 40 hours ago, # |   0 My heartiest congratulations bro.
 » 20 hours ago, # |   +19 Congratulations for your loss.
 » 20 hours ago, # |   +8 So sad
 » 19 hours ago, # |   0 most unluckiest person on codeforces