Something really bad that could have happened with me was prevented, with a stroke of crazy fucking luck. I thank god for that, and I have decided to give out some help to other as a part of thanks.
I will personally help 5 people in comments asking their doubts in anything CP/Math related — any problem or anything in my capacity. (Based on my capacity. If a red asks me something crazy, I am sorry.)
I have been expert, but I lost touch with CP recently. I really love maths. I think I might be able to help people <= specialist.
Feel free to downvote, I dont care (Maybe you should, so that folks dont start a trend with these kind of blogs) . I just want to give out help and earn Karma and keep god's blessing on me. (Sorry I am lonely, This was one of the better idea I had to help others)
Edit — I am glad I could help. Based on my commitment, I have responded to 5+ peoples. I will still try to keep responding to questions, but might not be able to. Thanks guys for the opportunity.








What careers like CP or Project Euler type problem solving can I pursue that is not research and gives out good money?
I dont know the answer to that, other folks please chime in. I am not sure there is a feasible career like this open for everyone.
A few things I can think of — CP trainers (Need to be really good and popular and be in a place where there is a demand), Quant firms ( I have heard it involves hardcore problem solving, and gives crazy money. But you need to be really good to crack their interviews ) , SDE at big companies like Google (I guess <5% of your work will revolve around problem solving, but it pays good.
Wait I forgot about AI. I think AI research companies have good amount of algorithmic and problem solving related work. I hope they will pay good.
You can directly ask anything. Example : why my code for problem X give WA or explain my doubt X about the solution/problem. I will try to answer it based on my capacity
Take a look at my performance, I think I slowly climbing up but I really wanted to see a breakout instead. What should I do to reach expert swiftly?
Also should I train CP outside of CF? (What's the up and down sides for training outside CF)
A few question to better understand you.
Have you partially solved/considered solving CSES problemset ?
Have you trained DSA and Algorithm outside CF ? Like CLRS book , or a College courses of DSA/Algo ?
Have you solved "standard" algorithmic problems ? For example how much of these standard problems on Leetcode you think you already know of https://leetcode.com/problemset/?listId=wpwgkgt&page=1&difficulty=HARD
What limits you in your contest performances among "Limiting factor categorization" below ?
What do you think are your weak areas ? (Dp/ counting problems / graph and trees / adhoc question )
--
Silly MistakeImplementation mistakes. Too silly--
Implementation MistakeImplementation mistakes.--
Slow implementationCame up with solutions quick enough, and did implementation withoug much mistakes but took more time that you should, so either you solved to slower than your potential, or couldn't solve it in contest due to that.--
Unthinkable SolutionCould not think of the solutions--
Slow Coming SolutionsWas slowly approaching solution, but could finalize solution before end. Or finalized solution but took too much time, so that could not implement.--
Bad SolutionComing up with a correct but bad solution, while not taking too much time in coming up with the solution — causing either implementation becoming too hard to manage, or implementation taking too much time.--
Wrong SolutionComing up with a solution, which you think will work, but its actually was wrong. Causing you to spend time implementing, and then debugging WA, and then finding out it was wrong.--
Misunderstanding ProblemsMissing something in the problem, making wrong assumptions,I've background of OI academics before, so let's say I have learn/solved all the standard stuff before in pascal/C++.
I've comeback to CP recently for 1 year. But I find that I rather to code in python nowadays so I start comeback slow. Both to get used to python in CP and getting back to CP by python.
I do think I have a few weak areas like dp, constructive algo, combinatorics (I solved them sometimes but inconsistently). Also I haven't learn any type of segment trees. (My data structures is in very basic level, but still I can solve graph problem, a few query related problem by sparse table... but not segment trees — If I detect they're needed I'll just skip and read the next problem)
Group of limit factor categorization: bad/wrong solution, silly mistakes, misunderstanding, unthinkable solution (I've sorted them as the frequency I met)
About implementation mistake, I rarely have them or it's CF that's try to limit the implementation itself. As I see all the problems are very short-coded one. So the time spend for debug is not really that much
A few lower rated problems than my current rating (900-1300) but I can't solve it and needed Editorial:
"Also should I train CP outside of CF? (What's the up and down sides for training outside CF)"
Downsides in my opinion — Not much. One possible thing could be that you have too many things to juggle together. Or maybe some sites have bad UI/bad community/bad problem quality.
Upsides — You experience style of problems and contest. Atcoder for example gives many standard-ish problems, while codeforces have majorly ad hoc problems now. Some atcoder problems are very good from educational perspective(they will help you improve), but they are too standard-ish to ever appear on codeforces contests.
Also if your goal is ICPC, you need to practice outside CF. CF doesn't have that much geometry and heavy implementation problems in contests, compared to how frequent they are on ICPC.
I would say my answer on this is just my opinion, I wouldn't consider it as a good answer.
I see that you have problem with being consistent. Some recent contest (edu 174, round 999, round 1002) , you didn't Solve C and took too much time in B. Unexpected based on your current rating. But since " bad/wrong solution, silly mistakes, misunderstanding" are the major problem, I think just more practice with same method would be good.
But I think there might be an issue on how hard you try problems yourself. Whether you give up and check editorial to quickly .
Some more questions —
Around how many problems among the 136(1400+ difficutly) you would guess you solved completely on your own / solve with some hints from editorial / solved by fully seeing the editorial ?
I've checked some of my history and dish out some stats that I self solved without editorials:
About whether to read the editorials, If my mind goes to a dead end in practice, I spend extra 30 minutes to think, still stuck -> editorials. I find that I have many blind spots so editorial actually help, but yeah should I give it more time to think? I really don't know.
In live contest I'll try another approach or patch it up or skip. Really kinda random for now as I don't have a clear strategy and experimenting them out at times.
I think the way you are practicing is okay. And you dont have to worry too much
It will take a bit of time to gain ratings.
The major limiting factors in you contest performance seems to be things you will get better at by practicing more.
And since you try hard enough, and mostly solve problems in your own, you practice method is okay.
Your in-consistency, I think might come from somewhat lack of self-belief. Maybe in contest you give up at one point of time and you tell yourself that you wont be able to solve the problem and stop "really" trying to solve it. Not trying with a belief that "you can" and with a positive mindset.
You must understand the difference between trying a problem with a mindset of a belief that you can solve it, vs mindset of vagueness where you think its a low chance you will be able to solve.
It has happened with me too. Many contests, I got blank and almost got to the point that I thought I cant solve it, But I didn't gave up and "really" tried. I really pressured my brain to think. I said to myself, that you are expert, this problem is solved by 5000+ folks, YOU CAN SOLVE it with 95%+ probability. Its just that your brain has to hit that one idea. That trying with a positive mindset gives you an edge. and keeps you consistent in your performance.
Thanks a lot, you called out my negative feelings is... actually correct.
I will adjust things to makes my performance better.
I have a suggestion that might be useful: You said you go to see editorial when you are stuck for 30 minutes which is mostly fine but you have to look for strategies to get out of dead ends (like what questions to ask yourself/what to do that could help you make next important observation) and test them.
You look for them by asking yourself "what could make me think of this idea/what should I consider next time" when reading editorial and really spend some time thinking of "self-questioning protocol" which is one of the things you have to improve (alongside with math and dsa knowledge, implementation skills, etc but this stuff is talked about more frequently).
You test them by not going to editorial from time to time when you hit a dead end and instead thinking of your "self-questioning protocol" and trying to apply it exhaustively (hope the word is right lol). Sometimes your protocol would work when you was not expecting it — you should ask yourself why it did. Other times it wont and you have to figure out why it didn't and update it accordingly after reading editorial.
The idea is good to reflect back to reduce the chance of going for the wrong path again. Thumbs up
I'll call this idea "Post WA clarity".
Ty I'm stealing that xD
can you review my id and suggest me how can i improve further.......
What limits you in your contest performances most of the time among "Limiting factor categorization" below ?
What do you think are your weak areas ? (Dp/ counting problems / graph and trees / adhoc question / etc )
I see that you have solved 50 problems of 1600 difficulty and 38 problems of 1700 difficulty. How many of these 88 problems you solved completely on your own / solve with some hints from editorial / solved by fully seeing the editorial ?
--
Silly MistakeImplementation mistakes. Too silly--
Implementation MistakeImplementation mistakes.--
Slow implementationCame up with solutions quick enough, and did implementation withoug much mistakes but took more time that you should, so either you solved to slower than your potential, or couldn't solve it in contest due to that.--
Unthinkable SolutionCould not think of the solutions--
Slow Coming SolutionsWas slowly approaching solution, but could finalize solution before end. Or finalized solution but took too much time, so that could not implement.--
Bad SolutionComing up with a correct but bad solution, while not taking too much time in coming up with the solution — causing either implementation becoming too hard to manage, or implementation taking too much time.--
Wrong SolutionComing up with a solution, which you think will work, but its actually was wrong. Causing you to spend time implementing, and then debugging WA, and then finding out it was wrong.--
Misunderstanding ProblemsMissing something in the problem, making wrong assumptions,most 1600's i solved myself, about half of 1700's i solved myself. iam doing good with dp and graph. i face misunderstanding of problems most of the time.and silly mistakes (very few times), some times i even comeup with wrong solution.
"i face misunderstanding of problems most of the time" This can be improved a lot by practice.
Since you dont have major issue with "Unthinkable solutions" and you are solving "hard-for-you" problems yourself. I think you are doing good. I don't have anything to suggest for now.
This problem Fine Triplets is on my upsolving list. Can you explain me the intuition behind FFT/NTT to solve this problem. How to spot if something is FFT and how we solve this one without any pre-written code from scratch(only pre-req I have is I watched videos by Reducible, Veritasium and 3Blue1Brown) :)
Since I haven't studied FFT, I cant help you there. I have 3-4 upsolves pending on FFT. So I will be studying FFT soon. Once I understand, and implement it, and solve a few problems. I will probably get back to you.
My thinking is that its pretty advanced topic, and below CM, anyone would better focus of DP, Maths, Graphs & Trees, and Data structures.
you basically want all possible combination of 2*b = a+c , so in other words if you are able to compute all possible values of a+c in the array, you will be able to check for each a+c , how many 2*b exist, and to calculate all possible a+c , you will need FFT, you will keep all the values in the array as powers , and then multiply the polynomial with itself, thus getting all possible combinations of a+c as the powers of the new polynomial, this way you will be able to calculate the number of b which satisfy the given constraint. It's a really nice question. I also wasn't able to solve it during contest unfortunately :(
One of the problem I have no idea how to solve (unthinkable). But it seems interesting and very classical at the same time.
can you view my id and help me.i know I am weak in greedy problems.
Feels thats for now you are sort of stuck at pupil, but its only a problem if you aren't able to solve problems on your own.
Try to understand what limits you in your contest performances most of the time among "Limiting factor categorization" below ?
If its like misunderstandings / silly mistakes / slow or bad implementation / slow coming solutions — then you would improve by practicing more. No need to worry.
If its more like unthinkable solutions and wrong solutions. Then you might need to change the way you practice.
I see that you have solved ~80 problems of 1600+ difficulty. How many of these 88 problems you solved completely on your own / solve with some hints from editorial / solved by fully seeing the editorial ? If you are seeing the editorial too much / too early, than it might be a problem
--
Silly MistakeImplementation mistakes. Too silly--
Implementation MistakeImplementation mistakes.--
Slow implementationCame up with solutions quick enough, and did implementation withoug much mistakes but took more time that you should, so either you solved to slower than your potential, or couldn't solve it in contest due to that.--
Unthinkable SolutionCould not think of the solutions--
Slow Coming SolutionsWas slowly approaching solution, but could finalize solution before end. Or finalized solution but took too much time, so that could not implement.--
Bad SolutionComing up with a correct but bad solution, while not taking too much time in coming up with the solution — causing either implementation becoming too hard to manage, or implementation taking too much time.--
Wrong SolutionComing up with a solution, which you think will work, but its actually was wrong. Causing you to spend time implementing, and then debugging WA, and then finding out it was wrong.--
Misunderstanding ProblemsMissing something in the problem, making wrong assumptions,I have the similar problems. i read editorials too much and think less. after reading the problems, i open the editorials quickly nearly without thinking because i think the problem is too strange and i cannot solve it.
Sorry for my poor English.
da_ke I would advice to really avoid that. Being able to come up with the solution on your own should be the goal, not just knowing how to solve the problem.
You should try hard before giving up.
I would advice you to make a list of bullet points, of things you should do before jumping to editorial.
Binary search. Its sometimes not easy to see. Sometimes it can be applied to solve a part of problem, while the few other variables have been figured out via some other method. Like CF-2013D
Thinking on what is making the problem Hard.
Also see — https://mirror.codeforces.com/blog/entry/83672?#comment-710254
I mostly got Bad solution or Implementation mistake. I rarely thought wrong solution and wrong answers. All my wrong answers due to simple implementation mistakes. Also I solved most of the problems my self it's more towards 60% own self, 30% small hints, 10% seeing editorial. If I solve a problem with complete editorial I did not submit it, I left it to think about it later times.
s_tapan099 Thats actually really good. It was nice to hear that.
"Wrong Solution" would have been worrysome, but "Bad Solution" would just naturally improve with practice. Make sure to check the editorial and code of top coders even after you solve the problem, to so how elegantly and nicely they solved to learn and optimize your solutions.
"Implemention mistake" would just improve with practice.
"If I solve a problem with complete editorial I did not submit it, I left it to think about it later times." — This is good, you are focussing on coming up with the solutions on your own.
So I think you are doing great just keep upsolving contests, and practicing problems at 100-200 difficulty level above your ratings.
How can i improve my logic building skill !! :)
You are solving way too much of 800 rated problems (215 out of 362 are 800 rated).
(1) You must solve more challenging problems. (1100, 1200, 1300)
(2) You must try hard to solve them on your own, and use editorial to solve at max 10% of the problems
(3) Make sure to upsolve the contests you give.
Can you check my id? I need some serious help in CP. I'm not that good in mathematics.
From your id , looks like you have just started. But I see you have solve 67 problems, our of which 50 are 800 difficulty level.
Same 3 points as this comment — https://mirror.codeforces.com/blog/entry/139837?#comment-1249428
By the time you would have solved 50+ (1200-1300) rated problems "on your own", you should be near pupil.
Upsolving the contest means solving all the problem in that contest or solve B and C. How do I get good in mathematics? How many problem do you solve in a day? Can you share your journey. BTW, thanks for looking my id and suggestion.
About upsolving
(1) Just solve the next problem you couldn't solve
(2) Make sure to check the editorial and solution of top coders for problems even which you solved. Always see jiangly's code, its awesome . You would learn how elegantly and nicely they solved to you would learn to optimize your solutions.
During my peak time, I was solving around 4-5 good problems a day.
To get good in mathematics, specially for CP I would recommend solving topicwise maths questions on AoPS Alcumus. It a very nice website. I did a lot of practice about Number theory and algebra on it.
And to build a strong foundation on maths and understand things, especially around compute science, you can watch this MIT course around Maths for Computer science — https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B . I watched this whole course, and it helped me a lot to understand many things related to number theory, graphs, recurrences, and probability.
I dont have any good journey to share, I just practiced a lot. My next goal is to gain back expert now, and then CM. I will post about it when I reach CM.
Awesome. That was insightful. How do you take notes for CP? Do you keep track of all the problem you solved? And Do you revise previous problem?
The only notes I take is when I see a very different and not-obvious idea used to solve a problem.
This is all I have right now. Nothing else in name of notes.
Do you keep track of all the problem you solved? — No
And Do you revise previous problem? — No. That is never needed. It shouldn't be done. Knowing the solutions is not important, its the problem solving skill to be able to solve it completely own your own.
Sometime I stumble upon old problems that I solved (Maybe some asked me that problem), but cant immediately think of what I did. I just solve it again.
how much problems should i solve to get to specialist and suggest some topics to solve problems on...
To get to specialist, I would consider two things — Standard and classical problem solving capability and Codeforces practice.
(1a) Solve Top solved Leetcode hard problems . These are mostly standard and classical/well-known problems, but they are very good for growth and understanding, if you are a beginner.
(1b) Also solve CSES Problemset. Again, classical and standard problems that are very educational. For specialist target to solve 60%+ of all except Additional and Advanced sections.
(2a) Make sure to upsolve all contests.
(2b) Progressively solve problems of difficulty rating 100-200 more than your current rating. (Prioritise classical problem solving stated above first)
I would guess, that once you have solved 100+ Leetcode hard on your own, and 60% of CSES problems except Additional and Advanced sections and 100 problems in codeforces of difficulty (1400-1500) "on your own", there is a very high chance you will be specialist.
Regarding topics. I would say dont do topicwise if you are a beginner. Solve all standard problems, and if you feel that you are specifically weak at something, then you can consider solving more on that topic.
But first consider improving your all round problem solving to a decent level
20-30 problems
heyyyyy, review my id please, actually the main issue that i think with me is that i use python which is less efficient and i've faced multiple hacks and TLE's on my solutions while system testing and the fact that i cant even use python for dfs, recursive dp and segment trees is annoying. And i cant just abruptly shift to c++ because i've been doing cp in python for more than a year now. Also some tips might be helpful :)
A bit off topic, but one thing I an just guessing is that you might adjust your mindset about C++, if you are too negative.
I understand the frustration for some simple string relating, array slicing, mapping operations you have to write huge code in C++ and you curse the language and feel why they made it so complicated. But try to understand that there is a reason for that. They had to make things efficient, and thats why its like that. Try to "Respect and enjoy" the language.
I used to have this mindset about Java, where I would curse the verbosity.
You may not use C++ as your main language, but you should 99% of time be able to rewrite your code in C++ whenever you have to.
By the way, if you havent already, you can see conqueror_of_tourist, he is a Python LGM.
Just a small fact about language versatility, I recently had to learn Go for my project work, so I solve practice problems in Go as well now. I think you might be overestimating the toughness of using both python and c++, hand in hand.
Your profile looks great. You contest performance consistency is extremely remarkable, so is your practice. I am in awe. Great !! .
It's not like i hate c++ i actually totally love and respect the language but currently I'm learning lots of new different things and techniques, so can't just switch to c++.I am also considering to shift in c++ in the distant future
Just out of curiosity, would like to know what is the major limiting factor for you performance in contests.
--
Silly MistakeImplementation mistakes. Too silly--
Implementation MistakeImplementation mistakes.--
Slow implementationCame up with solutions quick enough, and did implementation without much mistakes but took more time than you should, so either you solved to slower than your potential, or couldn't solve it in contest.--
Unthinkable SolutionCould not think of the solution--
Slow Coming SolutionsWas slowly approaching solution, but couldn't finalize the solution before end. Or finalized solution but took too much time, so that could not implement.--
Bad SolutionComing up with a correct but bad solution, while not taking too much time in coming up with the solution — causing either implementation becoming too hard to manage, or implementation taking too much time.--
Wrong SolutionComing up with a solution, which you think will work, but its actually wrong. Causing you to spend time implementing, and then debugging WA, and then finding out it was wrong.--
Misunderstanding ProblemsMissing something in the problem, making wrong assumptions,My limiting factor according to me is overcomplicating the soln/implementation, slow implementation sometimes and self doubt majorly :(
Hey, can you see my profile? In the recent contest, I came up with a solution, but I couldn't code it correctly in time, which decreased my rating. also give some tips
Among the 176 problems you solved, 130 were in 800-900 difficulty range.
Its better to solve more problems that are above your level to see better growth.
At beginner level, I would advise also practicing standard and classical problems, they are very educational and improves you a lot.
Solve Top solved Leetcode hard problems . These are mostly standard and classical/well-known problems, but they are very good for growth and understanding, if you are a beginner.
Also solve CSES Problemset. Again, classical and standard problems that are very educational.
Make sure to upsolve all contests you give on codeforces.
You can consider giving Atcoder ABC contests as well, they are very educational, and beginner friendly. Problem quality is really good and you can discuss problems on codeforces after contest. There is usually a blog post for each contest.
Target to solve more 1200-1300 difficutly problems.
"I came up with a solution, but I couldn't code it correctly in time, which decreased my rating" — That is okay. It sometimes happens. It will improve with practice. At beginner level I would say you can just stop caring about ratings at all. Just focus on learning, "being able to solve problems".
Once you are green/cyan. It wont matter how many ups downs you had as a grey. What matters is that you reached green/cyan.
If you had to sacrifice ratings of one contest for the sake of learning in long term, you should do that. (For example — instead of running to implement a relatively-shitty solutions, think back 3-4 min, and think of a more elgant approach).
I did something similiar, where I took "5 min challenges" . I would solve all the problems, but would only submit them just 5 minute before the contest.
need help in debugging the solution if possible :) https://mirror.codeforces.com/contest/2027/submission/307230547
Sure. Its too late for me right now. But I will solve this problem tomorrow morning and then find issues in your solutions.
I solved it. My submission — https://mirror.codeforces.com/contest/2027/submission/307335386
Having a bit of trouble understanding your solution. Can you define what precisely
dp[i][j].sandremstores ? And give a brief 2-3 liner rundown of your solution.I understood that
dp[i][j].fstores the min cost considering arraya[0...i-1], and considering that you start withk=j.inifnite Finally found issue in your approach. The subproblem definition unfortunately is the problem. It doesn't follows the optimal substructure property.
Lets denote the subproblem by $$$ P_{ij} $$$ , We say that optimal solution of $$$ P_{ij} $$$ is $$$ DP_{ij} $$$ stored as $$$ (f,s) $$$, where $$$f$$$ is the min cost and $$$s$$$ is max remaining sum. As per your above definition
Optimal solution $$$ P_{ij} $$$ cannot always be calculated from previous optimal solutions of $$$ P_{xy} $$$ (where $$$x \lt i$$$ or $$$y \lt j$$$ ).
For example while arriving at the solutions of $$$ P_{i,j} $$$ from $$$ P_{i-i,j} $$$ , a suboptimal solutions of $$$ P_{i-i,j} $$$ might be better, which doesn't necessary minimizes $$$f$$$ (the min cost), but provides more $$$s$$$ (max remaining sum) . So that later instead of doing an operation costing $$$m-j$$$, you could just use the remaining sum
Optimal answer = 9 Your code gives = 10
Optimal solution
In this case $$$ P_{5,5} $$$ has optimal solution $$$ {7,0} $$$, and $$$ P_{4,5} $$$ has optimal solution $$$ {6,2} $$$
Your algo will find $$$ DP_{5,5} $$$ as $$$ {9,4} $$$, using the optimal solution of $$$ P_{4,5} $$$ . While if you use a suboptimal solutions of $$$ P_{4,5} $$$ which is $$$ {7,8} $$$, you will get solution of $$$ P_{5,5} $$$ as $$$ {7,0} $$$
PS : This was really hard to get to. I had to write a stress testing script and generate random test cases.
ans = 84
ans = 17
Any suggestion for me on how to reach expert before year end ?
Your solve count is good, and practice consistency is good. No abvious suggestions for now. Contest performance is also very consistent.
I would like to understand you better to be able to suggest anything .
(1) What are the major limiting factor for you performance in contests.
--
Silly MistakeImplementation mistakes. Too silly--
Implementation MistakeImplementation mistakes.--
Slow implementationCame up with solutions quick enough, and did implementation without much mistakes but took more time than you should, so either you solved to slower than your potential, or couldn't solve it in contest.--
Unthinkable SolutionCould not think of the solution--
Slow Coming SolutionsWas slowly approaching solution, but couldn't finalize the solution before end. Or finalized solution but took too much time, so that could not implement.--
Bad SolutionComing up with a correct but bad solution, while not taking too much time in coming up with the solution — causing either implementation becoming too hard to manage, or implementation taking too much time.--
Wrong SolutionComing up with a solution, which you think will work, but its actually wrong. Causing you to spend time implementing, and then debugging WA, and then finding out it was wrong.--
Misunderstanding ProblemsMissing something in the problem, making wrong assumptions,(2) How much of the problems (1400+) have you solved completely on your own / solve with some hints from editorial / solved by fully seeing the editorial ?
(3) Any weak areas ? (Dp/graph/counting/maths/etc)
(4) Solved CSES problems set ? If yes what percentage (excluding additional and advanced sections)
(5) What is your strategy when you cant solve a problem ? Whether you give up and check editorial to quickly, or try a lot, or give a fix amount of time ?
1) I generally struggle with ad-hoc problems. Sometimes, it takes me a long time to craft and prove a constructive or greedy idea with certainty that it will work.
2) For 1400-rated problems, I’ve been able to solve some in contests, while others were purely from practice. Over the past few days, I’ve been consistently practicing 1400-rated problems, and currently, my success rate is around 50%. Of these, 50% I solved without any help, 30% required hints before I could figure them out, and for the rest, I had to refer to the editorial.
3)My weak areas include game theory and greedy algorithms. Additionally, I’ve just started learning dynamic programming (DP), so that’s also a weak point for me.
4) As of CSES I have solved majority of searching and sorting category and 50% of Graphs section not much in other sections of it
5) First I would try to think of some observation if none clicks I would go with brute force and then how to optimize this brute force, I would try to solve the question from scratch with 2 or more strategies if am not able to find anything, I would first prefer some hint from editorial and then again think for an hour or two, then if again I am not able to point something I finally refer to editorial
Some problems where i mostly get trapped are like if you are able to point out something ten only you can solve it else not ( these are the ones which i consider my self very weak in)
While other where we are just required to do something data structure designing or something similar) I am good at it.
Your practice methodology is good.
"Some problems where i mostly get trapped are like if you are able to point out something ten only you can solve it else not" — For problems depending on hard observations, I think you would just get better by more practice. Luckily codeforces contests have a lot of these problems, so you should get better by solving hard-for-you problems.
Based on all this, I think you are doing great, nothing for me to suggest. Just keep it up.
By the way, "Slow Fourier Transform" is lit. I wish codeforces allowed me to be in more than one organization.
are u in cllg? or job?
SDE Job, since June 2023.
give me a referral :p
Okay. No problem.
Can you take a look at my performance? Any advice would be appreciated. Hope to Become Cyan Soon. xdd I have a question though. How do you go about with observations you missed from a problem? Like Do you see the editorial and try to come up with that yourself or just note it and move on(I dont think this is possible since i dont think a lot of observations are repeated). I would like to hear your thoughts
Your solve count is good. Although your performance is sometimes very inconsistent, so maybe you are relying more on Memory and Analogy, rather then creativity. (See https://mirror.codeforces.com/blog/entry/112856). Its possible that you are reading the editorials too quick, although that might not be the case. A few questions
(1) Based on the above blog I linked, what one/two among the three — (Memory, Analogy and Creativity) majorly gets you to solve the hard problems.
(2) Any weak areas ? (Dp/graph/counting/maths/etc)
(3) What is your strategy when you cant solve a problem ? Whether you give up and check editorial to quickly, or try a lot, or give a fix amount of time ?
(4) What are the major limiting factor for you performance in contests.
--
Silly MistakeImplementation mistakes. Too silly--
Implementation MistakeImplementation mistakes.--
Slow implementationCame up with solutions quick enough, and did implementation without much mistakes but took more time than you should, so either you solved to slower than your potential, or couldn't solve it in contest.--
Unthinkable SolutionCould not think of the solution--
Slow Coming SolutionsWas slowly approaching solution, but couldn't finalize the solution before end. Or finalized solution but took too much time, so that could not implement.--
Bad SolutionComing up with a correct but bad solution, while not taking too much time in coming up with the solution — causing either implementation becoming too hard to manage, or implementation taking too much time.--
Wrong SolutionComing up with a solution, which you think will work, but its actually wrong. Causing you to spend time implementing, and then debugging WA, and then finding out it was wrong.--
Misunderstanding ProblemsMissing something in the problem, making wrong assumptions,I think the one way i can explain my inconsistency is since january I started with my semester so there is a extra burden of semester related stuff and also i cant get to attempt many contests because somedays i m just too tired to give contests and giving contests in that state will not necessarily be a good idea.
(1) Though from the blog it is mostly -> Analogy > Memory = Creativity.
(2) I dont know if i should say dp, graph, counting to be weak. This topics I initially studied for interview stuff and did solve a lot of leetcode problems which are basically see the problem -> Figure Out the type -> Solve it. If you cant figure out the type just see the solution. I wanted to get better at analysis and proving part not just blatantly using the similar algo with changes in most questions also I did not find leetcode very fun. So instead of doing Leetcode I just grind CF. About that topics, I think i should learn them or atleast solve more cp style questions from youKnowWh0's sheet. I have been planning to do that. I think I will do that in the summer break or whenever I have time. Also Sometime i struggle to find observations which are math related so i wonder how i should improve that.
(3) I usually spent about 20-30 mins but after some time my mind just feels fuzzy like i m overcomplicating things a bit. So i restart with known observations. I then try for some 5-10 minutes more. If i cant, I just see the editorial. I am mostly solving 1300-1400 problems nowadays so these time slots work.
(4) Its always implementation related. Sometimes its slow Implementation, sometimes its a silly mistake, sometimes its Implementation Mistake. But most of the time i get the idea correect on paper. Its just my implementation sucked or took a lot of time.
" Analogy > Memory = Creativity." -> This is concerning in the long term. In my opinion, as you grow, for harder problems, it will be hard to rely on Analogy and Memory. You would find many problems would have no pattern, no old problem to relate to, it would be hard-to-get observations and deductions. If you can, you should really try to hone creativity.
You see folks with low problems solve count, and high ratings. Thats what it is. They have high creativity. They can solve unseen problems. The kinds they never saw.
" see the problem -> Figure Out the type -> Solve it. If you cant figure out the type just see the solution" — This feels wrong. Problems are not classifyable into types. "Figuring out the type" should not be the focus. Many many problems are unique. Trying to relate the problem with previous problems is correct. But thats not end of it. You should try to understand the problem and solve it independently. Try really hard to solve problems yourself, and stop seeing editorials too often.
It wont do much good to solve most problems with editorials, After few months, you will almost forget the solutions, and will be almost back to square one.
"I wanted to get better at analysis and proving part" — Yes, you should be able to proof >90%, if not all of your solutions. If you are skipping that part after solving the problem, maybe spend some more time to understand why the solutions actually works.
"Also Sometime i struggle to find observations which are math related so i wonder how i should improve that." -> I am just guessing. It could be because you rarely tried really hard and trained for these unique problems that required observations and deductions and mostly jumped to editorials. So you never trained your brain to come up with those observations on your own.
So you will improve by solving more of such problems on your own.
"I usually spent about 20-30 mins but after some time my mind just feels fuzzy" — Maybe use a strategy when you are stuck. Dont give up yet. Try a few other things (See my list — https://mirror.codeforces.com/blog/entry/139837?#comment-1249424 )
From your answer to (4), its mostly implementation. This is not concerning . You can improve that by practicing, and by looking at others solutions. Make sure to check the editorial and solution of top coders for problems even which you solved. Always see jiangly's code, its awesome . You would learn how elegantly and nicely they solved to you would learn to optimize your solutions
I agree with all of your points.
How do you think I can hone the creativity part?
And Yeah I will give more time to thinking the solution. Thanks for the list btw.
TLDR : Solve More problems by myself and think more and dont easily see the editorial.
"How do you think I can hone the creativity part?" — I think this should improve as the number of hard and unique problems you-solved-on-your-own will grow.
You could also understand and internalise the importance of creativity. Then you should be able to focus and try more harder while solving problems, and you will have motivation to not see editorial and try yourself.
About missed obeservations — I dont really understand the question. If I miss an observation, I would not be able to solve then problem, and after trying really hard, I would "have" to read the editorial to see that observation. Then I would get that observation, and would implement the solution. Maybe I would also think about the intuition behind the observation, and try to see what thought process could have made me arrive at that observation. But thats all, what else can we do.
Can you analyse my id please? What can i do for improvement?
Based on you problem solve count, ideally you should be at rated at least 1200-1300. Also the unsolved count if a bit high, suggesting that you are leaving "hard-for-you" problems for later (Those problems that you weren't able to solve, contains the corners of problems and ideas that are hard for you. Those are the most educational problems for you).
Are you giving up and checking editorial too quickly ? Do you upsolve all contests you give ? Any weak areas ? (Dp/graph/counting/maths/etc)
Based on the this blog ( https://mirror.codeforces.com/blog/entry/112856 ), what one/two among the three — (Memory, Analogy and Creativity) majorly gets you to solve the hard problems. It you are mostly relying on Memory and Analogy, then it might be a problem.
What are the major limiting factor for you performance in contests ?
--
Silly MistakeImplementation mistakes. Too silly--
Implementation MistakeImplementation mistakes.--
Slow implementationCame up with solutions quick enough, and did implementation without much mistakes but took more time than you should, so either you solved to slower than your potential, or couldn't solve it in contest.--
Unthinkable SolutionCould not think of the solution--
Slow Coming SolutionsWas slowly approaching solution, but couldn't finalize the solution before end. Or finalized solution but took too much time, so that could not implement.--
Bad SolutionComing up with a correct but bad solution, while not taking too much time in coming up with the solution — causing either implementation becoming too hard to manage, or implementation taking too much time.--
Wrong SolutionComing up with a solution, which you think will work, but its actually wrong. Causing you to spend time implementing, and then debugging WA, and then finding out it was wrong.--
Misunderstanding ProblemsMissing something in the problem, making wrong assumptions,Hey. I have been doing CP for a bit like 2 years, but 1 year for serious, done some problems but I couldn't get any benefit from them. I was not progressing idk why, is it cuz I spent less time on thinking and go see edutorials fast or smt else. I stopped doing that, still haven't seen any progress. Tbh havent been joining much contests recently (this is my alt), but still idk, what is your opinion on how to progress. Like sometimes I question my problem solving fundamentals, and which problemsets/OJ's do you suggest for increasing classical problem seeing (I have done some CSES at my beginner times but as I said it was kinda cheating since I looked at the solutions rlly fast). Like sometimes(tbh rlly often) I cant even think of simple problems, 8/10 problems I solve, I have to look at edu's. Just in summary, what is your suggestion for increasing problem-solving skills. Sorry if I cant explain anything, my mind is a bit foggy rn.
Another problem I have is, my discipline has gotten rlly worse (prob cuz of my depression and stuff, did a bit of copium). What are your suggestions to stay consistent and stop those bad/pessimistic thoughts of life brought by depressio. Like it rlly affects my learning, sometimes I cant even focus on problems, how in the hell I will learn anything from it... Maybe it's the problem. Other distractions are like idk some videos or stuff, or i go stand up for rest then take it a bit more. Anyways, I couldn't explain myself rlly good, but hope you understand a small bit somehow :), ty for your patience, good luck on life <3. If you have time, we can talk it even more, if you want in DM's.
" 8/10 problems I solve, I have to look at edu's" — This is really bad. You should be able to solve problems on your own, at lest 70% of the problems. The key is the skill to solve the problems, not "knowing the solutions".
It wont do much good to solve most problems with editorials, After few months, you will forget the solutions, and will be back to square one.
The suggestion is to internalize and understand that just knowing the solutions wont do you any good, and coming up with the solution is the real deal.
Try really hard to solve problem, and when you cant, only look at the editorial partially. Like see the first few lines, and as soon as you come across any idea you haven't thought of before, close the editorial and start trying again with that idea.
Before all that, you need to understand the reason why you want to do CP. And if you really want to and have to do CP or not ?
What if you are allowed to trade all your time you spent on CP, on another skill — would you take the offer ?
If you have no good reason and not enough motivation, and have better things to do, then you shouldn't do CP
Dang that hit hard. The thing is, I do spend time, and i sait 8/10 times, I rlly mean it like i dont get ideas, thats what im saying. And I used to do it as a hobby like (had hard times in OI's but still) but now as i stated im going thru hard times, cant rlly enjoy ANYTHING. Anyways, thank you so much for responding. Another thing is lets just dont care about my method, what would you suggest for practice methods, like how much time to spend on problems, what happens if you dont get ideas for so long like 10 problems, is it a math related problem or not? Cuz my math is rlly good tbh.
"I rlly mean it like i dont get ideas" — Okay, I understand. It is possible. Then you should consider rethinking doing CP. If you cant solve problems on your own, then it will be very hard and depressing to keep doing CP.
I sometimes get but not much these days, I feel like im practicing the wrong way thats why, so my question is, what do you suggest for me to practice that way??? Like spending more time and effort on problems? Alr
"Try really hard to solve problem, and when you cant, only look at the editorial partially. Like see the first few lines, and as soon as you come across any idea you haven't thought of before, close the editorial and start trying again with that idea."
This is what I suggest.
another question, after this talk this rlly depressed me even more, does this answer you say mean that Im an idiot or?
If you ask Ronaldo to play chess, and he makes a stupid move, you wouldn't call him and "idiot" for that.
Almost everyone have things they are strong and smart at, and things they are not good at. Very few people in this world are really "idiot".
You might not have a knack for CP, and thats it.
How to be faster? (You can check some of my contests to understand what I mean by this) Idk for me I think its because I keep trying to fully prove my ideas instead of sending a guess However I might just be slow? not sure
https://mirror.codeforces.com/contest/2064/standings/participant/203665153#p203665153
good example of the issue ^ (there's a lot more if you look depending on how far you're willing to look into this)
"I think its because I keep trying to fully prove my ideas instead of sending a guess". This is really good. This tells that you are a real problem solver. I have many slow submissions due to this.
In fact, for a while, I did this. I would solve and only submit is last 5 min, to improve my problem solving. So I had no option to guess, but to "really solve" the problem.
So do you feel you are slow in only coming up with the correct solutions you believe, or you are also slow in implementation ?
What about other factors like "Bad Solution", "Misunderstanding Problems" . Does that happens with you or not ?
For example see this, and tell if you have any other major limiting factor for you performance in contests, apart from "Slow coming solutions" or "Slow implementation"
--
Silly MistakeImplementation mistakes. Too silly--
Implementation MistakeImplementation mistakes.--
Slow implementationCame up with solutions quick enough, and did implementation without much mistakes but took more time than you should, so either you solved to slower than your potential, or couldn't solve it in contest.--
Unthinkable SolutionCould not think of the solution--
Slow Coming SolutionsWas slowly approaching solution, but couldn't finalize the solution before end. Or finalized solution but took too much time, so that could not implement.--
Bad SolutionComing up with a correct but bad solution, while not taking too much time in coming up with the solution — causing either implementation becoming too hard to manage, or implementation taking too much time.--
Wrong SolutionComing up with a solution, which you think will work, but its actually wrong. Causing you to spend time implementing, and then debugging WA, and then finding out it was wrong.--
Misunderstanding ProblemsMissing something in the problem, making wrong assumptions,Also another question — How many of these (1400-1800) rated problems have you solved on your own / solve with some hints from editorial / solved by fully seeing the editorial ?
btw can u review my profile on basis of submission and all .i have just started doing cp.
81 out of 97 problems you solved were 800 rated. Make sure to not only solve too easy problems.
I would give same advice is this comment https://mirror.codeforces.com/blog/entry/139837?#comment-1249532
A bit of both, I tend to make some very dumb implementation errors, however there are also times the problem solving takes me a while. Also I do sometimes misread problems as well. Id say a mix of "Slow Coming Solutions" and "Slow implementation" are my main problems
As for the problems, its hard to say because I changed my mentality on reading edi a lot Id say early on, before July or August 2024 (2024/x/2 — 2024/x/8) I read edi a bunch, especially when I got stuck, but after this I tried to avoid reading editorial or getting help as much as possible, leading to some (if not many) of these problems taking long to solve because I kept deriving new things for them), I still read editorial after accepted solution, however I rarely if not ever read it before getting accepted anymore, I also try to minimize the help I get.
The 1800 early on I definitely read editorial for a few though, I know that for sure rest just take me a long time, but I refuse to ask for help.
sorry if this was long
Then I would say your practice strategy is good.
To be faster
Give more virtual contests.
Give Leetcode Weekly contests. They are easy, they are speedforces basically.
Give Atcoder ABCs, again, they are speed focussed short contests. But still with good problem quality.
Auto comment: topic has been updated by lazysegtree (previous revision, new revision, compare).
Can you do a profile review of my profile? Stuck at newbie : ( I wanna be an expert soon , can you give a roadmap or a profile review?
Looks like too many of your problems solved are 800-900.
I would recommend solving 1300,1400 and 1500 rated problems now.
And make sure to try really hard at the problems, to maximize learning. When you cant solve problems, only look at the editorial partially. Like see the first few lines, and as soon as you come across any idea you haven't thought of before, close the editorial and start trying again with that idea.
2nd thing is that if you havent solve standard and classical problems, do that too. Those problems are very educational and will be good for your current level.
CSES Problemset (Except Additional and Advanced section)
Leetcode Hards ( Pick 40-50 top solved problems)
At beginner level, I would suggest you to get some good foundation in DSA and Algorithms, to have good fundamental and conceptual knowledge. It will help you a lot. I personally watched this Free MIT course — https://www.youtube.com/playlist?list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp , and read a few relevant chapters or CLRS book, and it helped me a lot.
So you can do some classical learning via books and course while you practice on CF. That would be great.
Target to solve 60-70 % of CSES and
>100problems (Make sure to solve at least 80% yourself) of difficulty(1400-1500-1600)And make sure to keep upsolving contests you give.
Then you should reach specialist, once you are there, plan for expert.
Could you analyze mine?
Unsolved count is too high in my opinion suggesting that you are leaving "hard-for-you" problems for later (Those problems that you weren't able to solve, contains the corners of problems and ideas that are hard for you. Those are the most educational problems for you).
Since you have peaked 1550, you can now focus on solving 1500, 1600, 1700, 1800 rated problems. Count for problems solved for these difficulty is pretty low.
What is your major Limiting factor in contest performances ?
--
Silly MistakeImplementation mistakes. Too silly--
Implementation MistakeImplementation mistakes.--
Slow implementationCame up with solutions quick enough, and did implementation without much mistakes but took more time than you should, so either you solved to slower than your potential, or couldn't solve it in contest.--
Unthinkable SolutionCould not think of the solution--
Slow Coming SolutionsWas slowly approaching solution, but couldn't finalize the solution before end. Or finalized solution but took too much time, so that could not implement.--
Bad SolutionComing up with a correct but bad solution, while not taking too much time in coming up with the solution — causing either implementation becoming too hard to manage, or implementation taking too much time.--
Wrong SolutionComing up with a solution, which you think will work, but its actually wrong. Causing you to spend time implementing, and then debugging WA, and then finding out it was wrong.--
Misunderstanding ProblemsMissing something in the problem, making wrong assumptions,The limiting factor varies quite a bit. Its always one or the other.
Can you review my id and give me suggestions? I liked this dynamic