Hii everyone,
I am posting this from an alternate account because I don't really want people to track this to the real me. This post is a way of venting something that I have been feeling about competitive programming for a very long time.
I have been in and out of CP for 5 years now, back when I was in college. I started with Hackerrank and eventually heard about CF from friends. I actually found this very fascinating as I was always interested in mathematics and puzzle sort of things. But then I was not getting better — I was stuck in the 900–1000 range. There were times when I could not even crack A of the contest, and I couldn't handle the fact that I maybe was not smart, and then I gave up CP for like 1.5 years. I would maybe solve a problem here and there, but never regularly.
Then later on I actually got a job as a DSA trainer, and I taught DSA for almost 1.5 years, and I taught it well — people really responded well to my teaching. My students also included CF specialists, people who cracked Google interviews, etc., and I felt like maybe now I could get back and finally become better at CP. I watched YouTube videos, created notes, everything that I felt was needed. So I again hopped back and started doing it again, and after 20 contests I barely touched pupil, and currently my rank is below 1000. In yesterday's contest I could not even solve A, and previous to that contest I wasn't able to solve B.
Tbh, at this point of my life CF does nothing for me in terms of my career and probably is a waste of time for me, but I still cannot help letting go of it from my life. It may not be a big deal for a lot of you, and maybe it should not be that big of a deal for me as well — like nobody is asking me for my CF rating lol. My friends have already stopped, and yet I still cannot just accept the fact that I might just not be as smart.
Thanks for reading! would love to hear your thoughts on this, any advice is welcome!









Can you give a little insight into how you approached A?
Initially I thought of applying BFS and that would have worked but I knew I would get TLE, so I started writing down all possible coordinates we could visit and spot some sort of common pattern in there, I did get some conclusions like 2y=x means yes but I was not able to get to the correct conclusion. Spent like an hour on it and then finally gave up.
I would avoid thinking of algorithms like BFS and then trying to apply them (for the most part). Instead, try to think through the problem logically and then ideas about what algorithm you should use will naturally come to your mind.
For this problem, let's imagine (x, y) = (10, 3). We want a path from (0, 0) to (10, 3) using vectors (2, -1), (3, 0), and (4, 1). It's useful here to think about the problem in reverse because from (0, 0) there are far too many paths forward to consider, while going from (10, 3) to (0, 0) is more restrictive. You generally want to limit how many logical branches you have to mentally calculate.
Thus, the problem reduces to attempting to find a path from (10, 3) to (0, 0) through the reversed vectors (-2, 1), (-3, 0), and (-4, -1). The first thing to note is that for the y axis to go from 3 to 0, we must add the vector (-4, -1) 3 times no matter what. Thus, we reduce (10, 3) to (-2, 0). But now, there is no way to go from (-2, 0) to (0, 0) because all three of our vectors contribute negatively to the x component. This yields a nice insight. When we try to take the y axis to 0, the x component can not become negative.
So now, let us assume we want to transform (x, 0) to (0, 0), where x >= 0. When can we do this? Since we need the y component to stay 0, for every (-2, 1) we add, we must add one (-4, -1). But, if we combine these, we see that this is equivalent to adding (-6, 0), which is in turn equivalent to adding (-3, 0) twice. Thus, we must be able to go from (x, 0) to (0, 0) solely by adding (-3, 0) a certain number of times. This means x must be a nonnegative multiple of 3.
This gives us a complete solution. First, we transform y to 0 by adding (-2, 1) or (-4, -1) depending on whether y is positive or negative. Then, we just have to check if the transformed x component is a nonnegative multiple of 3.
I think you are more than capable of solving such problems, you just need to try small cases and reverse operations or perform other manipulations that shrink the search space. Good luck!
Yeah mapping in reverse did come to my mind but I dont know why I didn't go ahead with that, I did notice something that every time I go to a new level of values in that there are always two duplicates there for example after 0,0 -> (2,1), (3,0) and (4,-1) and if I expand it further I will get repeated values like (6,0) and (5,1). I thought maybe I can get something from this but couldn't, thanks for the advice tho.
Your problem is not that you are not clever or something like that, controversaly you are very smart, but you are applying hard solutions for problems that don't need it
Maybe I do find myself making horrendous mistakes specifically while I am in a contest. I would make some stupid mistake and for some reason won't be able to spot them in the moment. I think I need to find a way to calm myself in times like these.
bro everyone have this issue, it's not like it's due to your skill issue or smth like that, just stay calm and determined
Ohh wow, you hit specialist, actually a lot of commenters here ranked up.
actually this is my 4th time hitting specialist
It seems like you still have sufficient motivation (whether it's because you enjoy thinking and wrestling with interesting problems, or perhaps you feel you are not smart enough). My recommendation: just treat at like any other hobby, such as sports, music, dancing, etc. You don't have any deadlines to improve by (for example IOI/ICPC/job searching). Therefore you should put as much effort as you want. You should understand part of getting smarter is to think more. So internalize the solutions and problem solving techniques that you learn (both from your own struggling with problems and from editorials).
And have fun!
Sometimes, I do say to myself it doesn't matter I will just do it because I like solving problems but then suddenly I will realize that it does matter to me to be able to call myself good at something. Somedays it feels like I am indeed getting better but on the other days its like I am really just stuck.
Bro, i feel you...But you must understand that being good at cp is just like being good at chess if you just start playing chess or play chess after a very long period of time you wont be doing good. You might take a little longer time to have progress in cp and recognize patterns of questions. You blaming yourself not smart is just an excuse, not a reasonable statement. well, i am also just a pupil and i understand how hard it is to see people doing A B C so fast and i get stuck many a times. But thats fine, within me ik that i m improving and becoming a little better analyzing every question i cant solve.
Actually I do play chess and I have played maybe around 3000 — 4000 games in that and compared to that I haven't really solved as many problems and having a lot of games or problems in your mind is indeed important so yeah maybe I just need to solve a lot more problems before judging myself.
exactly
If it matters for you, then do it. You live your life for those close to you, and for yourself. Career is means to an end, job is means to an end. If you want to prove to yourself that you can solve those problems, then prove it. You have a job, and you have a dream and a goal.
Sometimes its just really hard to justify the time that I spend doing this, like I would spend hours and not even solve the problem and I would ask myself why did I even do that because lol now I feel bad about myself, that time is gone and what is it even for. I could have binge watched a series or something instead of doing this and then I would say to myself I am never doing this ever again. Only to do it again with a hope that maybe I am almost there and just need to keep doing. I am trying to just let go of all the expectations and do but I don't know maybe I am just a very egoistic kind of person who just can't accept defeat and move on.
There is nothing wrong with being egoistic. You don't need to justify your goals. If you really want to do it, then do it.
Yes I think I am just going to go ahead with this. thanks!
the way i see it is you shouldn't do it if you don't enjoy it. if you would rather watch something then watch that. i did codeforces for like at least an hour a day just doing div2 A and B problems because i enjoyed it then. but it became easy so then i moved onto div2 C problems, and now i only really enjoy solving easy div2 D problems and div3 E problems (but i will do div2 C problems since they can be interesting). rating was only useful for me because its an indicator of my improvement (and being one of the first to see a problem is fun), but the real enjoyment i have is solving old problems in the problemset. just solve what is interesting to you and you will get better from that naturally.
i should note that i know it is a skill, which whatever alternative may not be, but in my opinion the only difference that makes is that you improve on it, which is part of the enjoyment. theres no objective benefit to being better at codeforces (or at least for you, since you said you have a job in the field already).
it sounds like you do enjoy the problems though, so i would just do it at your own pace as i already said. if contests are inconsistent for you, do easier problems out of contest. if problem solving is the hard part for you, maybe start from way older problems, since they have more of a focus on the programming aspect.
I would say that's the biggest thing I am currently struggling with of just letting go of my rating and doing problem solving for the sake of it. But I think I am actually going to do the opposite thing here which is not to forcefully enjoy this or anything and admit that its my dumb ego for which I am doing CP.
You may treat it as a hobby that you enjoy. If you have fun while doing it, even when you can't do it well, then you will stop caring about you're skill level and just solve problems for the sake of solving them.
Besides, in my opinion, some people who are passionate about something and really enjoy them tend to get better without as much effort as it would take for them in an activity they don't enjoy.
For me I can't really enjoy things that I am not good at and getting better at something is what I feel like brings joy to me and I haven't been getting better at CP so its been hard to have fun doing it.
It is complicated for me to explain this without controversy, however I will try my best
There are 3 types, the "similarity group", the mentality, and the talent in terms of talent: one thing you mention is that you're not smart, I believe this is ok, my friends (and I) often consider me a "baseline for stupidity", however this does not mean I am demotivated in or should be excluded from my hobbies, one of which is cp. Talent has no correlation with similarity group and mentality. Please note this.
In terms of mentality and similarity group, these actually do affect each other. Certain similarity groups seem to lean to certain mentalities. Now since I dont know what group you belong to, I will not make assumptions, however one similarity group in specific are commonly cheaters or care about their ratings way too much.
If you are in this similarity group, my advice to you is to just quit. People in your group only care about results and will cheat on anything to obtain meaningless undeserved "rewards" for fake recognition. I suggest you quit CP in this case, especially if you do not enjoy it for the thrill of solving problems itself.
If you are not in this similarity group, my advice is to figure out what you really want to do. If it is cp, that is fine, but ponder it deeply, and think "why do i enjoy cp"
For example let me answer this question. I enjoy cp, why? I like problems that utilise multiple ideas in a chain that come together really nicely, yet outside of the problem these ideas would never be thought to work together, especially in an elegant way.
The initial reason I suspected that you were of some similarity group was due to failing to solve A after teaching DSA for 1.5 years. Most likely you are of this group, but again to not make assumptions, if you are not consider this: Don't overcomplicate, a div2 A should take 10 minutes at most, they are trivial. Even someone with far below average talent can consistantly solve div2 As without fail. If you continue to fail, you are very most likely overcomplicating it.
Finally, to those who downvote me: thanks! ~ your contribution is why I continue being the person I am. I'm just here to influence the platform to be one rid of cheaters and the unwanted, that should be a positive no?
I mean its not like I consistently cannot solve A of contests but it does happen at times and not being able to solve that in the last contest is what triggered this post and there was a time when I would struggle with passing all testcases even for A. I like the advice of not overthinking because sometimes I could fall into that even for A but now I just stop right there because I know for sure that this problem probably does not require BFS or something.
Talking about the other things that you mentioned I will be very honest I did not get a lot of what you mean by "similarity" group and the other types. But I think what you mean is if I am too concerned about my rating and showing that too others as a means of recognition I am more likely to cheat which yeah maybe could be true.
In my case, I care about rating I clearly do but also I know zero people irl that actually do CP or care about it, yeah in college I had some friends but we don't talk about CP anymore. Even if I get good at CP someday all I think I am going to do is just celebrate and maybe call my parents and sister tell them about this and these people have no idea what I am talking about lol. So the rating thing is for my own soul and cheating would never really satisfy it, so you can chill I am not cheating but yeah I do care about rating.
ah ok, similarity group refers to indians btw, I just didnt want to say it like that since usually people argue with me and call me racist and all that
Anyways, think about it for this way, whenever you want to solve a problem, you want to solve the simplest thing you can, I think this is true for many people (maybe not the top but blue/purple definitely). For me for div2 A-D most times by doing this these problems are solvable, ofc mistakes can still happen so I don't always solve A-D.
For problem a, there should be almost no reduction, just think of something simple, theres only so many ideas. For problem b it depends, but I'd say usually either theres still no real reduction and intuition can carry you, or there is reduction but with the reduction you get the answer example: notice something can only happen 30 times at most, brute force -> this is something i'd expect from a div2 B
For problem c and d you will make reductions or observations which lead to smaller (sometimes standard) subproblems, please make sure to prove all these reductions as much as possible, guessing is fine but you should not rely on it to build intuitition.
Hope this helps but do remember, if you dont enjoy the process, it is better to do something else, learn to enjoy cp for what it is.
Thanks for the advice
Please tell me how to post a blog
Just go to your profile and click on blog entries, from there you can post.
In my opinion getting to any rank now is much harder then before, it's probably because the cheaters increased, and it is getting less interesting to compete. Another thing I noticed, is that this website had become more like a social media, I remember mostly algorithms were used to discuss, advises were given, and competitions were fair, but nowadays, recent actions are filled with blogs like this: https://mirror.codeforces.com/blog/entry/151455 and people do cp mostly to get high status, or get jobs, some even cheat just to get a job, like I heard arnabmanna did, and I noticed that most of those who were even doing useful things, are no longer are, maybe because it's not worth anymore. I remember I once dreamed of setting contest on codeforces, but I think it's no longer worth it, I hope codeforces will change back again, but there is little chance, but just my personal hope.
I do think the rise of LLMs has significantly changed cp. At the same time, I believe things will eventually stabilize. Over time, CP will likely be shaped more by people who genuinely enjoy problem solving rather than those pursuing it mainly for career advantages, profile building, or external validation. Interesting name tho and who knows maybe you will end up setting a contest someday.
Imo, you have a good attitude, and I think that it takes a lot of humility to admit that you might not have the ability to do something. Especially something like this, cuz most people like to think of themselves as smart compared to other people (whether they like to admit it or not). Most people, like the people on r/leetcode, just blame the problems or the interview process and say they're stupid. That's just a terrible attitude.
But I must say that usually people who write these posts haven't done that much practice. You should just give us an idea of how many cf problems you've solved so far. $$$100$$$? $$$1000$$$? Imo, if it's $$$ \lt 300$$$, especially spread over $$$5$$$ years, you should practice a bit more and then come back after like a decent amount of continuous practice.
I think that div 2 $$$B$$$ is, on average, the most $$$IQ$$$-like problem out of all the problems out there (well, just div 2 problems actually, idk about div 1 problems). At least in my experience, div 2 $$$C-E$$$ are a lot of times recycled ideas, and if you do enough of those, you will start to see that most of them aren't that unique. But div 2 $$$B$$$ is always pretty unique.
Btw, have you ever taken an $$$IQ$$$ test? It might be a good idea cuz then you can know what to expect from continued practice. I can link you a few free ones if you would like.
I think I have solved 500+ problems but its not on one platform it is spread across Hackerrank, Leetcode, Codeforces and others. On CF specifically I think I have solved around 200 with varying difficulty on all of these platforms. Although it is true that I haven't been very consistent because I would get back to CP -> Fail miserably -> Quit -> Again get back to CP and the same cycle has continued for 5 years.
Regarding the IQ thing, to be very honest with you I am afraid to take any sort of IQ test because I am afraid of finding out something I don't want to but still pls give me some good ones, maybe I will end up trying.
In my opinion, $$$500$$$ spread over $$$5$$$ years (2 a week, on average) is definitely not very consistent, especially since a lot of those were probably beginner problems, like leetcode easy-medium or so. I don't want to say that this post was unwarranted, cuz struggling with easy problems is not the most fun thing, but I think that you should at least try like $$$3$$$ months of solid practice before thinking this way. Even if you don't improve after a few months, at least you will have your answer.
For $$$IQ$$$ tests, there's this site: https://cognitivemetrics.com/ that is really hit or miss. They have some great tests there, but sometimes they do a bait and switch on the "free" tests, where they try to charge you like $$$20$$$ dollars after you have already taken it. That's pretty much as scummy as you can get without being outright fraudulent. And all of those tests used to be free, too, well except for the ones that they made themselves. The best test you can take there in under and hour is the $$$AGCT$$$, but I'm pretty sure they're gonna try to charge you for that one. And trust me, it's a good test, but it's not worth giving money to those people. Anyway, I'm pretty sure that all of these subtests https://cognitivemetrics.com/test/CORE/take (scroll down) are free still — you just need to have a working email. If you are not a native english speaker, the best ones to take there are probably quantitative knowledge, arithmetic, figure weights, and matrix reasoning. Out of the nonverbal tests, those tend to have the highest correlations with general intelligence. Block counting is fun too, but I'm not sure how good of a subtest it is. Anyway, the $$$IQ$$$ scores you receive are mean $$$10$$$ sd $$$3$$$, and just be aware that the raw score -> $$$IQ$$$ score conversions were created by the people who made the site, so they (the conversions) are probably decent but not great.
Yeah definitely, I am thinking of giving this a good solid try and seeing what happens then at least will have the assurance that I gave it a fair try. Thanks for the resources and your thoughts on this.
no offense, but do you know how to say anything beyond "iq"
sorry correction
$$$IQ$$$
Bro i think you solved too less problems in 5 years including all platforms ,and if u too much disappointed you can take motivation from my account .
Yeah true, I have no where near the amount of problems you have solved.
Brother I can understand your current situation. But please don't compare any other platform to codeforces. When I started my programming journey I also used these platforms except CF but when I switched to CF then I realized that the problems which I solved on previous platforms were not as much difficult as CF problems. When I started CF, I also gave up because I was not improving and I quite. But then I started again and yesterday I solved my first 100 problems on CF. So, if you just solved 200 problems so far on CF and you are also claiming that you are not consistent then I think that you should not publish that blog. Because It demotivates those who are struggling like you. In my opinion, if you had solved those 500+ problems on just CF so you rating would obviously better. And please don't obsess over ratings its a game and ups and downs are the part of game. At the end, I would say just believe in yourself and stay consistent. Enjoy Your Journey:)
Yes, I agree that CF problems are quite different from LeetCode or questions on other platforms. Also, the intention behind the blog was more to vent my thoughts rather than to say, “It doesn’t matter, kids the world is dark and your efforts won’t amount to anything.” In my own case, despite everything, I still ended up getting a job as a DSA trainer, so effort doesn’t really go to waste. It often comes back in different ways, at least that’s what I believe.
Here is my experience with CP if it's of any help:
I'm a pretty awful competitive programmer. I find that still doing it despite this keeps me balanced and helps me think about my programming projects differently, even if I may not be improving that much. This works both ways too. I just recently came back to CP after doing only personal projects for about 6 months, but I feel more competent with problems despite doing no CP practice at all.
I understand that you are very driven to improve at CP specifically, which is the cause of frustration, but I would urge you to try other projects and just do what sounds fun. I don't think you are less intelligent or not 'gifted' enough to be a good competitive programmer. You may just be burnt out.
Thanks, yeah that could help.
I can relate............. :(
Did u really solve all the problems yourself that's crazy
It's just 5-6 problems a day, nothing crazy... I really enjoy solving problems, but somehow it just doesn't work for me during live contests anymore.
tbh bro i was in a very similar situation to you, but what i realized is that that humbling u get from failing is good, you shouldn't be discouraged by it bcz it can only make you better
what i did was start all over, learn the basics and gradually move up and i am now much better than i ever was. it's not impossible, you aren't being limited by iq, you're probably just missing some fundamentals or you're doing problems that aren't at your level. there's no point in comparing to others' success, everyone's different, the only real success is being better than u were
also, like a wise man once said, brute force is useless where finesse is required so if your practice isn't working maybe the problem is how you're doing the practice, try different approaches to it and you'll find something that works for you. good luck and don't worry about it bro, you're gonna be fine <3
yeah even i think this is true i sometimes realsie i am just unconfortable around prime factors or stuff like that, which makes it harder thtorugh them as a solmn
same bro those problems are tough
Thanks!
Although I shouldn't say something as I am lot less experienced, I think you overthink the problems as you know a lot of topics and theories.
I do sometimes make the solution too complicated but at the same time I never go ahead with that idea because I know it cannot be that complicated and start thinking of something else.
i think i share the same feeling of motivation to do cp. im from ece, but enjoyed the concept the solving problems and getting elegant solutions. my primiary motivation in cp is to feel less dumb everyday and getting a soln accepted within a time frame gives me tru actional confidence. its really nice feeling. and when it does not happed, ur cooked as hell. i ranked in jee A 4761 and in general have been a gud perfomring guy but in the last div2 when i jsut tried solving div2A i was shattered o know my soln was horribly wrong. it doesent happen always, but even a few occureunces crahses my dopamine very hard. there are 2 observaitons i made about myself. inference matters more than pure math models. ofc that inference shud be derived logically, but that is how i think till C div2 u can solve. pen and paper will help a lot. attempting undistracted and focused. lst time when i tried this prob i wasnt registered in the conest but i half read the q, then thought of something it was overall a very bad way to attempt i feel. the best i can say it, ur spirit of not wquitting is really praiseworthy, and that u seek true fullfillmet. i feel we must take a step back and rewing how were we approaching problems , and at what point did we get deviated. too much talk form a newbie, but hey it was purely an attmept to help:) hoping i didnt get a tle on this
Doing CP as a means of not feeling dumb is a risky move imo because u never know how smart u are on a given day. Even if you are a newbie that was good advice and I appreciate it, thanks.
you can
Thanks!
Well, if in 5 years you didn't reach what you wanted then, most likely, you didn't really want it. And starting again is not gonna be easier. In fact, it is going to be only more difficult with time. Because you're now 5 years older. And in the next five years, you will be 10 years older. The problems also don't stay the same. Every year they are getting increasingly more complicated. 1000 rated problems 5 years ago are not merely 900 problems now. Most likely they are 890 problems which makes them 800. And your ability to solve 1000 problems is basically decreased by strong reevaluation. But that's not the point (even though a contributing factor) — the point is what does it mean for you to succeed in CP? To reach expert level? Many people say in comments that they achieved expert level in 3-6-12 or so months. But those are exceptions. There are many more who couldn't even achieve pupil level within the same period. People and the environment they live in are different. You and I can have the same environment and goal to achieve specialist level in 12 months by studying at least 3 hours a day. It doesn't mean we both succeed, because, simply, what you can understand in a day, I will need 3 days. The harsh reality is that when people say, everything is achievable if you really want it and you work hard enough is only partially true. Because your entire life may not even be enough to achieve some "unrealistic" goal. If you haven't had a chance or didn't want to spend 3-5 hours a day to study 5 years ago, then now you would need 5-8 hours a day to just get to the level that you could have had 5 years ago. If that is what you think the success is then there you go! But "reality is always disappointing" :) I am not trying to discourage you. You just need to have realistic goals. Knowing and teaching DS8A is, to me, already pretty respectable achievement. Ability to solve problems is an extremely hard skill to gain and you shouldn't get disappointed. In fact, the "easy" problems like A and B aren't really easy. I bet if you ask some of these questions in any tech interview, the chances that people will get it can be quite low, because everyone trains for pattern recognition on DS&A. These problems are ad-hoc. There are no limits on how intricate these problems can be. There can always be a problem A or B that you won't be able to solve unless it's your goal to be really good at solving ad-hoc problems (which means countless hours of practicing AND always continuing). And even that doesn't guarantee that you will have 100% rate of solving them. So make up your mind and set realistic goals :)
Same place as you brother, but dude, I dee your problmes solved, and you are theres 0 consistemcy, you have solved very few problems, its holding you back.
Yeah i haven't been very consistent, its a back and forth of "I quit this forever" to "But maybe I am almost there". This time though I am thinking of just being consistent regardless of my performance in contests.
I think you should first ask what you really love. Is it competitive programming, or simply algos / puzzle solving? If you blame yourself for the wrong reason, it will just hurt more. As for me, it's the latter.
I knew CF in college 3 years ago because I was interested in algos then. My major was EE and no one around me did CF.
So far, yeah, sometimes I can't even solve 1000-rated problems, but that does not hurt my motivation, since my starting point is curiosity and love for algos. Any problem of any difficulity is fine, as long as it makes me to think.
Now I am a software engineer in compute graphics. Every day coming home at 7pm, I often solve one algo problem — or not, that's totally fine. I can play games, practice painting, maintain personal projects or do other things that interest me. They are all parts of my rhythm.
Hope you can find the rhythm too — or it seems like you already have one!
Yeah I would say thats the actual problem here, I am not sure if I actually like doing this anymore. I know started this because I liked doing solving puzzles, mathematics, coding, etc. but then maybe I just started failing at it and that kinda killed the interest but again I am not entirely sure. Regardless I think I am going to give it some more solid tries.
I used to feel the same. At first, I was getting nowhere with my logic for solving the problem, so I stopped working on it for around a year. And for the last two months, I started doing CP continuously, and now I am getting a little better day by day, atleast i think so. So you will inevitably reach where you want to be. Everyone have there own pace.
Yeah maybe, but I feel like I have hit a wall and can't really get past it but yeah let me put in some continuous effort and see what happens.
I think you could try to stop taking more contests and just focus on solving some old problems in the archive, then your rating will increase at some moments.I am an example (Jul 2024 -> Nov 2025).