Why the quality of tasks in recent contest is getting worse?
Before, codeforces tasks often requires data structures and algorithms like graphs, binary search, and techniques like dp and d&c, but in recent contests (not all, but most), most of the tasks don't require them. Those tasks only requires observations to solve. For example in Codeforces Global Round 29 (Div. 1 + Div. 2) qA-D, I can't see any dp, any graphs, any data structures, but only stupid observations and greedy is needed. I dislike this style very much.
First of all, usually the observations are not easy to prove, therefore most contestants are solving them by pure guessing. This is basically “if u can guess it correctly, you can solve the task or else you will waste 3 hours to debug a wrong solution”. This is requiring more luck than real skills to get good results.
Second, this is making hard work useless. Before, people can improve their codeforces performances by learning more algorithms or techniques and practising. Now, practising is a lot less important as the only skill required for getting good results is observing and guessing patterns.
Actually, not only codeforces contest have this issue, but even in IOI style contests (for example APIO2025 which have two interactive and one greedy with strange observetion, and IOI2025 day 1 which have 3 non-batch tasks), data structures and algorithms is becoming more and more rare.
I am not writing this because I'm angry for my large rating drop, but I really think this style is making lots of negative impact on competetive programming.
I sincerely hope OI contests can be great like before.
Upd : many of the comments are saying codeforces contests are good for their observation based style. I DO NOT think it is wrong, but i think it would be bad if the task requires ONLY observations but not data structures and algorithms. A task is also bad when it only requires dsa knowledge . A true good task should require BOTH of these skills and they are BALANCED.








You don't solve them by pure guessing. Most hard problems require multiple observations to solve, and to make each step correct you must guess first + prove next. Your pure instinct is sometimes not reliable.
Observing is skill. And to improve it you need to practice by solving problems (and making observations when solving them). This works below red and I'm doing the same to improve above red.
And for the meta, I don't care what kind of skill problems (on Codeforces) require, or whether hard work is more relevant than other factors in improving, I like the current style because I enjoy making observations as much as trying to make use of DS/standard algorithms, and that is probably the case for most people. Try to understand the art of observing before making claims about problem quality.
Well said :)) Also; it would be criminal to not consider good observation a skill and merely pure luck.
And practice and hardwork would develop your observation skills side by side. Even if ad-hoc problems would be pure luck / guess; I don't imagine GMs and other top coders to be lucky everyday and solve them earlier than a lucky guy.
Yes, observation is important in CP, but dsa is also a crucial part of it and should not be ignored.
I think that guess first + prove next is not true. There’s nothing stopping you from blindly guessing an observation and ac-ing a task without actually understanding why it is true. For example, https://mirror.codeforces.com/contest/2138/problem/B. Many people have proved that LDS(arr) >= 3 is a necessary condition, but seldom do they (attempt to) find a countercase (for its sufficiency).
The best programmers are those which know complex algorithms but can also make observations through their experience and intuition. Meanwhile, it's just a form of gambling for people like us (who are probably in the middle in terms of programming skill). The phenomenon intensifies especially in problems like https://mirror.codeforces.com/contest/2147/problem/D, where you can ac with just an observation and trivial implementation (APIO 2025 Q3 is similar). The tasks’ difficulty is no longer only associated with its rating / skill, but (heavily based on) whether you’ve seen similar questions before.
Does the current format reward the ability of observations too much?
By guessing, you also accept the risk of wasting time by false conclusions. The problems you listed are 1B/2D, which to some extent are easy problems (the target audience is high Div 2). IMO harder problems reward blindly guessing less, because they usually have multiple non-trivial key observations. Therefore, the probability of getting everything correct is significantly lower. I've gambled in some 1C and 1D and wasted time and then never guessed anything again.
(Though, chances are that I'm just bad at random guessing, since I always see people yelling "blah blah blah is true for problem X tho idk why" in comment section when I spend dozens of minutes proving in past contests)
https://mirror.codeforces.com/contest/2138/problem/B is almost proof that either you guess or you get left behind.
I've just seen this problem, and this is my solution (I came it up in 5 minutes).
As you can see, the conclusion is truly guessable, but there is also a nice proof that is not hard to come up with. During contests, I would probably not be able to convince myself buy just guessing it.
The problem's statement was wrong during the contest and everyone guessed the intended solution (the one that you wrote). In reality the solution to the problem that was presented would be slightly harder.
The mistake was not limiting the operation to being used only once.
what you are saying is 100% true, the nature of contests have changed in past few months. Greedy, constructive algorithms and other similar tags based problems are dominating heavily at least up to div-2-D. I don't know what to make of this but problems being used in contests nowadays have changed definitely.
The logic behind is to counter ChatGPT, but how will it impact the community and how will it alter the problem solving ability of the participants? I don't know ( i am still contemplating).
I like observes more than dsa due to the completely personal reason of not liking heavy implementation. So I'd say that "quality" is pretty subjective.
Well I dont think observations is "low quality", but the current situation is that all tasks in a contest can solved by simple observation. I think tasks is "high quality" when both knowledge of algos&ds and observing is required.
(also there is actually some dsa tasks that dont need heavily implementation and theyre fun too :D)
Hmm, I suppose it's true that the lack of diversity will be boring to some.
Good DSA tasks are pretty hard to make imo, so they might not appear as frequently.
Can you give an example of a good problem?
C was Dp
i genuinely do not know whether this is a real post or you're just trolling. the ideas you present contradict everything that CP is in my opinion. if you need to know crazy data structures and have a huge library of prewritten code, THAT'S A BAD PROBLEM, NOT A GOOD ONE! ok, not necessarily a bad problem but it would be a better problem if it did not require all that. this is like saying that memorizing 1000 variations of chess debutes is the most fun part of chess. if i look at codeforces from 2017 and codeforces today, there is a monumental positive change in problem quality.
Do u even know how to learn data structures and algorithms? It is not reciting them, but u need to understand it and applying it in the correct way. I really wonder how can u even get a red title with 0 knowledge about how to learn them.
Moreover, If in a contest it is just think, writing code, submitting code, repeating the process, it is boring. This is not CP, this is just a iq test. The most fun and meaningful part of playing CP isnt just thinking and writing code, but the process of learning. Every time I learnt a new technique, applying what i learnt, successfully solve a task, this is the most enjoyable moment. This, is the difference between CP and a iq test.
I dont know if you would reply or not. If you would like to argue back, please first ask yourself one question: why you choose playing cf but not playing a iq test?
Dude, look at his blogs, it is very likely that he knows better than you do
but what he said in his comment contradicts to them :O
If you just want problems that are "Apply DSA that you have learned so far", there are also other things you can do apart from Codeforces contests. A good example would be EXAMS IN COLLEGE.
i dont think contest is bad to requires contestants to think, but at the same time dsa should be appear more ie they should be balanced
I don't intend to dispute with you about balance in contests. However, as most participants already have enough background knowledge in DSA (as implied in competitive "programming"), it is considered another priority to keep DSA only as a tool to solve the problem, not as the entire purpose of it. If a problem only consisted of DSA, there will be no fun in solving it; the entire process would feel like solving exams, and every single time the winner would be the one who remembers the most knowledge.
Claim: The primary goal of Codeforces should be to be enjoyable.
(Surely you do not dispute this.)
Claim: Most users enjoy problems where the crux of the solution lies in observation.
(I can't speak for everybody, but this is the case with an overwhelming majority of people I talk to. The people who disagree have many alternative platforms to do DSA problems on.)
Conclusion: Codeforces should have problems which primarily rely on observation.
A few side remarks:
You claim that practicing is a lot less important. If that were the case, then certainly everybody would be plateauing. So why is it that many people can still improve? Certainly practicing is effective.
Because CF is designed to be enjoyable, and IQ tests aren't. But if you're so insistent that CF is just a measure of IQ, then why don't you personally stop calling it CP and instead call it an IQ test? It doesn't really matter to me what you call CF; if you want to think of it as an IQ test, then go ahead and do that. And if you don't want to do an IQ test, then go do something else instead.
You are not good at it ≠ It's bad
I prefer to think that cp is about to solve problems, in which algos are tools for this kind of work. So what matters is how to solve the problems, not how many tools we used and how to use them. If there are some tools which is useful for the work, apply it and fast solve it will be good, however, there is nothing to blame with people who don’t use them(I mean, do it “differently”). The point is what suits for these problems. I approve your call for problems that requires them, however I don’t think this should be seen as a big issue, and it is not a must for a good question or a good contest.
Auto comment: topic has been updated by meisgood (previous revision, new revision, compare).
Contestants who like algorithmic puzzles more than observations usually enjoy atcoder contests more than codeforces
I agree with Stillswarm