Hello!
It's 2023 now, and everyone is happy and hoping for a good year, which many good contests to come. So I want to say about one thing that I saw in most of the contests from last year, which I was pretty much annoyed about it and decided to speak about so that this year we will hope to have a better experience doing contests here.
I have been in this community for more than 3 years now, not very long, but definitely enough to say that although the number of participants did increase, the number of users increase dramatically, but the number of people that respond to the contests positively don't. It actually did decrease though. I still remember that 500+ upvotes for a contest announcement are a normal thing back then, but I rarely see them now. And a common thing right now, every single contest that is over will have some comments criticizing it, but not in a good way at all. So I will make this quick for certain types of comments like that.
I don't know if you do but I do see a lot of things like "This contest is complete bullsh*t", "Sh*t author" or similar. Or worse than that. Or even in different languages. Well, yes, most probably you did badly in that contest, and/or it's unbalanced or too hard, so you criticize the problem-setter for doing that badly. Seems understandable.
Or something like, "D is just boring implementation", "B is harder than C", or "E is just cancer. How the hell did you guys come to problems like this". Yeah right, problems are sometimes too nasty or not really your type, or it's just too unbalanced or something. Seems understandable.
And of course, the classic "X-Forces" stuff. MathForces, PermutationForces, Speedforces,... something like that. It's the most common one at least to my knowledge, and let's be honest, considering the number of upvotes in each of them, you can tell many coders agrees with this kind of thing like it has become a common thing in contests lately. Seems understandable.
All of the criticisms, all of the hate on the problem setters, are a lot more than I thought. It seems reasonable if you think that contest is bad for you and it's irrelevant in some way.
But how will the problem setters, or others feel, are very different.
I asked thanhchauns2, a real Codeforces problem setter who set 2 contests here recently and received a lot of positive feedback about it. I enjoyed both of them as well.
Or in short, he will spend a hell amount of time on problems and contests. Yes, thinking of an idea for a Codeforces problem, or any problem that would be in an important contest isn't easy. At all. Right now, the pressure is even bigger, the expectations are higher, hence a problem you solve here, recently, or generally, would likely take days, weeks, or even months, to even come out with a raw idea. It's not as easy as a lot of people think.
So sure, I don't say that you shouldn't leave negative feedback to the problem setters and their problems, maybe they didn't prepare it that carefully, it's a very important aspect for them to come back stronger with higher quality problems.
But always remember, if you do badly in a contest because of the above reasons, sometimes it's not their fault. It's you having a bad day.
An unbalanced contest, a "Mathforces" contest, or something similar, are still, contests. It might be unfamiliar to you, and it might make you frustrated, but every single one else does that contest as well. If you have a bad rank, everyone else above you, or you have many WAs, then no, it's not the author's fault. Then you have negative deltas, you are sad because you can't reach the level you want to. But think twice before blaming the problems. It is unfamiliar? Learn it yourself. It is math? Learn it. Practice some problems, until it becomes familiar. Because that day, they solved it, you don't. Simple as that, learn from mistakes and come back stronger, it will become beneficial for both authors, and you.
About unbalanced contests? Yeah, it's annoying, but get familiar with it. There are no rules here, that force the problems to be in a fixed range, to be acceptable. It's just a common sense building over the years, and sometimes, mistakes do happen, but that's how strategy comes to play. Most of the coders here solve problems in order, but sometimes, in a contest, if you don't have any hope for a problem, you could read the next one, nothing wrong with that, and it can save you. There aren't 1000 testers per contest to tell you what is more difficult than what. In the end, the same problem, they solved it, you don't.
And yeah, don't curse in a different language. Please. It is just wrong in every way.
So what do we get? Before leaving a comment about something, be the author. Be the one that will hear your screams. Be the author that will get the hate, for a whole f*cking year of making their dream of making a contest, just for you saying it's bad. Get over it. A problem is a problem, is for you to solve, not to hate. In the end, you will learn, and you will become stronger after each contest. And the authors will get the credit they deserved, and be ready, to make much more, and much better contests for you guys.
And I know, there are still bad contests in general. There are even copy-pasted problems, which I hope will never happen again. But from these lessons, I know they will know what they did wrong after each contest, and they, the problem setters, the authors, and the coordinators will improve themselves to bring to you a better experience with Codeforces contests, to make this platform better. And do me a favor. So should you. Sticks and stones may break your bones, but words can break your heart. And it can shatter your dreams.
Any opinions drop them below. Apologize for any mistakes.
Stay well my friend.
:like:
blah blah blah. If I don't perform well, I downvote and curse author, come and fight me.
blah blah blah. I perform well, I upvote and love author, come and fight me.
That's the difference between newbie and master!
says mr pupil
Emotional Damage lol
Difference between pupil and newbie :P
Now he's expert and lmqzzz is GM. However you are still newbie
blah blah blah. If I don't perform well, I'll just try to get better next time.
... says the person who only took 1 contest ever, and who has only submitted 5 solutions ever.
I disagree with this point. Whats wrong in saying math-forces or x-forces. If Every Problem is of same type, isn't the authors fault for making contest biased for people who are good at some topic ? If you want to keep contest based on certain topic, they should name like Atcoder-DP or something like that.Since codeforces is not naming, people are giving name to contest.
No, either they are not that experienced, or it's just a mistake they don't want to. I'm sure that they won't make a contest just to be judged "Mathforces".
And even if so, say it directly to them, like there are too many math problems in this contest IMO or something, don't say Mathforces. It's just disrespect, not giving an opinion.
I suggest blaming coordinators instead of authors for things like this. If authors can only compose permutatiom problems, math problems, etc., the coordinator should be mindful and help the authors overcome their bias.
It's like spending time to come out with decent problems and prepare the contest properly allows one to create a good contest 🤯 Have you tried asking other authors about how much time they spent on creating a contest? Yet, I don't think we should use the amount of time authors spent preparing problems to judge the quality of the contest. Even if the authors very long time on the contest, a bad contest is still a bad contest.
And why do you assume the only reason people dislike a contest is that they lose rating on the contest? Of course, I agree that downvoting a contest just because you lost rating on it is silly and immature but there are legitimate reasons to dislike a contest and voicing your opinions in the comments in the comments is a really great way to let the author/coordinator know about it. Of course, you don't have to be an asshole about it but comments like "D is just boring implementation", "B is harder than C", or "E is implementation cancer." are perfectly fine comments.
But I'm just going to reiterate what someone else has said a few years ago that people rarely give positive feedback in the comments, so it seems that there is a lot hate towards that contest where these may possibly a vocal minority. So I want to encourage people to say that they like the contest if they really enjoyed it.
I have been wondering about this for a long time and I can't put my finger on what changed and how it became so socially acceptable to angrily criticize everything. Hell, it's not even proper criticism; most things that make people go "shit contest !!!" are straight up non-issues. C having 4 times less solvers than B is not an issue, seriously. Having to implement things is not an issue. You not having to think to solve a given problem is not an issue. Having permutations in a contest is not an issue, neither is data structures or geometry.
This kind of culture didn't exist four or five years ago. Expectations these days are ridiculously high.
The worst part is how eagerly high-rated people participate in this kind of behavior. I can honestly forgive random greens who have no idea of what they are talking about. But I know people who have set many contests and should know better — and yet they still complain after literally every round and call half of the problems "trash" for completely subjective reasons.
Well, there are people with big ratings AND a big ego (To the reader — you may already know some people like this, yet, I would politely ask not to tell publicly who they are). There are the kind of people who have their own (either real or virtual) checklist when they set problems, but don't realize that they should keep that checklist to themselves. Having a checklist in terms of problemsetting is a good thing, but please, keep it to yourself. Not everyone sets problems the same, every problemsetters' thinking process is different. So, to all problemsetters, I shall ask you, please respect each other! And remember, to be respected, we should respect others first.
Why are you scared to say the names of those high-rated people?
He is just avoiding unnecessary drama.
Was skeptical of this so I decided to check it (google sheets of div 2 from Jan '22 with number of annoucement upvotes). Seems true but I don't know how to do statistics XD. Can someone else interpret this? Also added coordinator of the div 2 round because of kozliklekarsky's comment just for fun.
Author of the worst CF rounds (according to a lot of people) here.
First of all, huge thanks to you for writing this post. Sometimes after conducting rounds, I feel awful because I had thought that I made some cool problems which try to introduce programming and math concepts in an approachable, educational way — only to get lots of comments like "problem B/C/D/whatever is trash". Sometimes I need reassurance that I should continue my work and that people can learn from my problems, and posts/comments like this one give me that reassurance.
As someone who sets problems for almost 6 years now, I definitely noticed the current trend. And I'd like to ask you (not the author of the post, but CF participants): if you want to have better contests, please make the author learn what their mistake is, when they make a mistake. In the beginning of my problemsetter career, learning from my mistakes was way easier; just understanding something like "oh shoot, my checker is wrong, no surprise I'm getting destroyed in the comments" was enough to improve.
But right now, I very often find myself in a situation like "I proposed and prepared a problem, everyone who reviewed it said it was interesting, now people say it's trash — and I don't even have a single clue what I should change!" Just two examples from recent months: 1783B and 1743D. These problems received awful feedback from the participants of the respective rounds, and I still don't know what went wrong. I wanted to help people learn their skills of solving those types of problems (and usually those types are not considered bad), but it seems like either I or they totally missed the point. Simply getting something like "problem is trash" won't make the author create better contests.
Several years ago, competitive programming in general and Codeforces in particular was mostly filled with enthusiasts — people who solved problems and learned algorithms because they actually liked solving problems and learning algorithms. The main reasons of participating in a contest were simply fun and desire to improve.
But recently, a lot of people get attracted to CP for other reasons. Lots and lots of companies use contests to hire programmers, so students sometimes feel like if they're not doing CP, they're out of the job market. So, they feel forced to solve problems — and, obviously, if you do something because you feel like you are forced to, you're much more likely to get frustrated, especially if something goes wrong. So, even though the quality of contests didn't drop, more people feel bad after taking part in them.
You said all these like you don't get paid for the rounds. Just take your money, and ignore trolls.
The money setters receive isn't worth the time spent setting. I think nobody would set a contest with money as a main reason in mind.
I really believe its not even close to true. The issue is most of these criticisers don't understand what competitive programming even is. Understanding that you can look at much simpler constraint sometimes, or that random strings look much different than predetermined strings are much more important to understand than some data structure/algorithm like fft or segment tree. These problem fit perfectly within the ethos of being an educational round. I think you could've mentioned the fact the string is random an additional time maybe, but some people will somehow always misread the problem. It just happens :/
Solving yet another implement segment tree problem does not help you in either learning it, or becoming better at problem solver. Why do people like it then, I won't understand. Its a tool that allows us to set more interesting problems, and its great to learn it, but that isn't the sole thing an educational round needs.
Hey, even after bricking on it (-13 in contest) i found the random tests problem beautiful and educational indeed. I did not take part in the other round but i agree the other one is also a nice problem. The only issue I have against it is, most people guessed it and got AC, but others maynot see that as a problem.
I've read these two problems and they are perfectly fine imho
I agree. People send hate as it is easier for them to lash out against problem authors rather than accepting that they have room for improvement; therefore, unless comments are made with good intention and constructive criticism, they can be taken with a grain of salt. I see the value in most of the educational rounds for beginners like myself, with problems that demonstrate the applications of various techniques.
Let's take a look at a contest that I completely bombed, educational round 140. I can typically solve A through D in a Div. 2 contest, and problem E on a good day. In this contest I solved A and B quickly, but over-analyzed a wrong approach for problem C, going down a rabbit hole trying to see if there was an efficient way to merge "distinct" and "similar" segments. Problem D went badly for me as well, trying to think of how to solve the problem by recursively solving the left and right subtree, and merging the answers into one, however I was not able to make this approach work. The final result was me losing -131 rating and nearly dropping to expert, a little disappointing.
Despite this unfortunate result, I can only look at the failure on my part. The first problem was being so fixated on solving A, B, C, and D in that exact order, as I typically do. I should've seen that more people had solved problem D, and focused on that instead. It showed a lack of contest strategy on my part. Another issue was being too tunnel-visioned with my approach on C. Clearly something wasn't working, so why didn't I try looking at the problem at a different angle?
And the problems themselves? It turns out that problem C involved dynamic programming by storing states of the last position of a character different from the current one, a technique that I was not familiar with. Problem D’s main simplification was realizing an important property that the order of the string does not matter. This is an example of a problem that can be solved by drawing examples, making an educated guess on an important property, and then backing up your guess with a proof.
The moral of the story? Try not to blame others when you meet failure. Try to see what you can improve on. How is one supposed to improve if his or her mentality is "I didn't solve the problem, so the problem sucks." I’m certainly not a perfect example; sometimes when I get stuck on a problem I instinctively start blaming the problem. But this is an emotional response, not a logical one. I am disappointed in this community for constantly complaining about problems out of bitterness, and reinforcing those complaints with upvotes.
Those problems that you linked are good to great for their spot. I feel that some people recently have been feeling too entitled to "being able to solve" problems, and that div3 and div4 even existing reinforces that idea to some. I've had to talk to some people that I know that skipping div2 rounds in order to participate in div3/div4 rounds to get easier rating is counter-productive when thinking about practice and they often still keep doing that... During my time as an ICPC competitor I'd participate in basically every contest that I had the time to, so that idea of skipping harder problems in favour of watered down problems sounds alien to me. I guess some people just really don't like challenges and it's fair to question if they're in the right place when coming into CP.
I'm one of the participants that keeps losing ratings on recent educational rounds. As an CF author, I do admire the effort you put on every contest without lack of idea, being exhausted, etc. I got a lot of trouble when preparing Codeforces Round 812 (Div. 2) and Codeforces Round 842 (Div. 2), but you have done the same thing a hundred times. Sometimes there could be some trouble, but keep doing such thing is not an easy work.
In the other hand, I think some round is a bit worse than other rounds for some reasons:
The rating distribution is not really smooth.
Everybody has a "barricade" that will block from one person from solving more problems. People don't like it comes too soon (expert participants all stop on problem B) or too late (everybody can solve E). It's like walking on a tightrope.
Hope that helps!
Personally, even though I missread the statement of that problem and have read XOR instead of OR, it passed around 20 or 30 tests, and simply changing or operation to xor, without changing solution logic passed 39 tests, so I indeed had a lot of fun making Randomized Solution pass 40th test (it did) Thank you for the fun! Also, reading editorial after contest, indeed I found idea for random tests very beautiful and interesting!
But if you want opinion from another side — I'll tell about last Edu round. I really liked D, because it involved trie, which, I believe, is infamous for most beginners, and not in brainless way, but requiring some logic. I even added it to "problems I liked" list. But B and C were awful :( The exact reason is — they don't involve much "programming/coding" and were just pure boring math. And from what I've heard from other people, neither they liked B and C. Some cm+ people couldn't solve C, and I personally would like to see less problems like B and, probably, C (didn't find it very bad, but neither good or interesing, sorry to tell this)
Dunno what to say about B, it's really a greedy/math problem.
But in problem C, my solution when I proposed it was applying binary search on the number of operations you need and then thinking how to check it, and I thought that people who didn't like boring math could use something programming-related to solve it.
Yeah, my opinion can be subjective here, I didn't think about binary search approach. Then yeah, it could be great problem =)
Erased everything that I wrote further, cause you're right, it's our fault that we don't see posibility of bin.searching :D
I participated in the round and thought C was a wonderful problem.
BledDest: Sometimes after conducting rounds, I feel awful because I had thought that I made some cool problems [...] only to get lots of comments like "problem B/C/D/whatever is trash". This is disheartening to read. Lots of people are enjoying your problems, but they don't comment after each round. Thank you, and all other authors, for the effort you invest in making all these nice problems!
It somehow just became normal to think that the contest is bad and downvote the announcement when your performance was bad. Adequate people just accepted it as "yeah, it is happening, let's just ignore negative comments without specifics".
The theory that many participants (and haters) don't care for competitive programming and do contests to get a job kind of makes sense. For them, the only goal is not to learn how to solve problems or get satisfaction from problems but to get to the colour (they think) they need to get a job. Through these lenses, the worth of a contest is equal to the rating delta they get. And thus the contest is bad when they got a negative delta, no other reasons are required.
You say not to curse in a different language, but literally in the next paragraph you curse in English? lmao
I Agree , NO of participants has decreased a lot since 2020. I still remember back in 2020-2021 when every contest announcement page has lot of upvotes and lot of people were making memes and enjoying , that time it was great community but soon cheating got started , people lost interest due to that. I wish i can go back in time.
It's too naive to think cheating started in 2020.
Cheating always have been their sir. I am trying to say From 2022 cheating started at very rapid pace. Maybe i am wrong but i felt that way Sir.
Appreciate your support!
It's been a while since I last posted a blog, so this one may have flaws (fixed some of them) which I will try my best to improve in the future. I hope that through this blog we will appreciate the problem-setters more, and leave more positive comments to them. My wish is to contribute to helping them get what they deserved, and make better contests in the future.
Anyways thank you and best of luck on tonight's contest!
Never blame a problem setter before becoming a problem setter yourself, since you have no right to do this. How can you have the feeling of the problem setters without doing the same thing? You are just shouting like a baby for you own happiness but ignored the feeling of the problem setter, this action is SELFISH.
I think it's okay to constructively criticize problem-setters. The issue being talked about here is how people spread random hate, without intending for it to be constructive in any sense.
I agree that there is too much hate for perfectly fine contests these days. However, if there is no feedback, it's not hard to imagine that problem-setters might slack off more frequently and we'll see more bad contests as a consequence.
The solution you present (only allowing feedback from problem-setters) gives a concentrated amount of feedback that will make sense, but it's prone to both leading to an echo chamber and the feedback being too little or non-existent.
But what the problem really is, some participants criticize them only because their negative deltas, which means they prefer f**king problem-setters' moms to considering how to become stronger for the next contest.
is it rated?
I wanted to write a similar post but you beat me to it. But the essence of what I had was this:
If you don't like a certain type of contest, stop competing. The authors made the problems through hours, days, and months of effort. It is disrespectful for you to complain about their hard work when you can't solve their problems. Get better. Don't complain about your skill issues.
I agree with that,and there's something important: if a (or a sort of) problem beats you,it is better overcome it but not curse it.
This topic has been discussed 100 times, but the CF community still has not learned these important and simple points. I suggest two options:
1) Remove the dislike button, like on YouTube.
2) Only allow div1 or experienced (with 30+ contest) users to vote on blogs.
You are against free speech
Sheesh the timing of this post
This is human nature. We try out your contest, it's great and all that but maybe we're having a bad day, or we are in a grumpy mood because we had a terrible night of sleep, or we don't like your style or choice of subjects, or we bricked super hard with a superficial understanding of the problems, getting massively tilted and losing triple-digit rating points.
Maybe we restrain ourselves and avoid disliking your contest, or maybe we don't because we are astronomically competitive, want to climb and have skin in the game.
A couple days later we come back and feel bad for downvoting, but unfortunately our host platform has decided a long time ago, and for a reason that still eludes me today, that vote updating is not a privilege we are entitled to like in nearly every other social platform created in the last 20 years. And now look at it from the authors' perspectives, they'll have to live with their contestants' tilt forever embodied in their round's score, rather than any sort of long-term appreciation.
When are you going to let us update (and visualize by the way) our likes on posts and comments? This entire discussion is missing the forest for the trees. I will be incredibly surprised if once this is fixed any reasonable contest without issues has less than 500 score a week after it was set.