I wanted to write super-harsh blog but then I decided to split it into educational part and whining part. This is whining part. To read some cool stuff go here. This one will also be educational on a slightly different topic. And there will be A LOT of harsh stuff.
I'm not saying that I'm perfect. That round had some really bad problemsetting issues. Problem E was googleable, problem D had very weak tests against very stupid solution (so stupid that none of the authors and testers come up with it, moreover, it is so counter-intuitive that I don't know how so many people independently did it). In two constructive problems participants could look at jury's output, the feature of which I didn't know. And I'm sorry for these issues. BUT. This comment has very negative rating despite being so true. And no one are here to back me up. So I want to speak my truth as I always do.
Let me accompany you to the world of supposedly BAD STATEMENTS. aka statements written by Um_nik.
Problem C from 2nd division of CF Round #518 gets a lot of praise for having very bad statement. Let us look at clarification requests we get on this problem. My answers here are not answers to clarifications from real contest, they are my emotions.
I think that you should be ashamed for your clarifications so I will include handles. This is probably not ethical as a problemsetter to do it. But I don't care anymore. Maybe I will be banned from setting rounds on CF. That looks like a good thing for all of us. You don't want to solve my problems, I don't want to do anything good for you.
"Is it also necessary that if 2 colors harmonize each other they should be connected?" and similar
by sam29, arif.ozturk, aman28rwt, -rs-, Vshining, tgritsaev, L0rdV0ldemort000006, Huvok, seo, shinbay, Apptica, yurics, Distructed_Cat, Adoki, dalbaeb69, chrome, ASUS, cjc, its_ulure, GhostDrag, GhostDrag
Answer: Yes. That's what "if and only if" means. Literally. That is the meaning of these words.
"Excuse me, what is number k in prob C?"
by tgritsaev, dungdq, dalbaeb69
Answer: That's a good question, number k is not important for the problem, but I decided to introduce it to ensure that you'll understand that you should place only colored rooks on a chessboard.
"A,B harmonize; B,C harmonize; do A,C Harmonize?"
by harshit601, Fighter.human, Gudleyd, atrophy98, tshr
Answer: No. I have no idea where did you get it from. There is nothing resembling in the statement. Probably it's an attempt to explain some samples, but it is wrong on first sample.
"are there many solutions for sample tests or it's one solution only?"
by Bakry, _QWOiNYUIVMPFSBKLiGSMAP_, bhowmik, mahdi.hasnat
Answer: Another good question, we made global clarification about this later. This was obvious from the samples, I think, but it was a mistake not to write it. I'm sorry.
"In the first sample, we can't go from the blue rook to every green rook!!" and similar
by cfalas, OmarBazaraa, MonsterInMe, DesiChamp, cjc, aman_shahi2, DesiChamp, MonsterInMe, S.Jindal
Answer: Samples are correct. Statement is correct.
"Reply fast please"
by ck98
"The statement looks like it was done with google translate, i don't understand anything"
by AlexArdelean
Answer: That's important information.
"if there is a harmonized pair (a,b). do the ans must contain a set of union of a and b? or i can arrange without any union set."
by Distructed_Cat
"if there is a harmonized pair (a,b). is it a must to make the both set of color a and b connected?" by Distructed_Cat
"And any rook of one color is connected with any other rook of another color that means all rook of 1st color is connected with all other rook of 2nd color if both color harmonise with each other?"
by Fighter.human
"Is it necessary for two rooks of different colors to be in one set?" by bktl1love
"What is harmonize of color??"
by _Muhammad
"can i connect colors other than the described in the input"
by KyRillos_BoshRa
"Specail Judge?"
by C20192413
Answer: Do you fucking read your questions? I like that "I can't solve the problem with operations in statement, can you provide better operations for me?"
Many questions just asking to clarify what the hell is happening in this hellish statement. There are a lot more stupid questions, I just tired.
CF has a large number of participants in each round. If 5% of participants think that his/her time is more important than ours then we will have to answer 5-10 questions every minute. In this round we had 30-40 unanswered questions during an hour, waiting time to get answer to your question is 5-10 minutes. And if we can't understand your question, we spend several minutes on answering. Please. Please. PLEASE. Spend 2-3 minutes trying to answer your question yourself. Use samples. Reread the statement. This is a skill, you have to improve it. Read my blog.
Don't ask "please explain the problem, I don't understand it". We already did explain the problem. The thing called "statement". Read it. Carefully. Why do you think that we will come up with better explanation right now? We prepared this statement several days, we asked testers to read it and say if something is unclear.
Don't say that statement is bad because you can't understand it. The statement can be hard to understand because it requires some knowledge, not because it is badly written. And some statements require to know mathematical notation like "if and only if" in this particular case. I can't come up with better explanation of why there are so many people asking the same question. basically "what if and only if means".
Please assume that authors spend some time on your contest. Much more time than yours 2 hours. Because it is true.
You can remember that once I made round unrated because I found the mistake in authors solution. I didn't wrote a clarification "I think your problem suck" without explanation. I continued my attempts to solve the problem and waited for the end of the contest, then asked what is authors answer for my test. Because I expected that authors did their job well and too busy answering stupid questions during the round.
One more time I spend ~15 minutes trying to prove that my answer for sample is incorrect. When I did it, I send this clarification: "Are you sure that answer for third sample is 34? For me it seems that there are 3 valid trees, in each of them there are 6 possible ways to choose pair of vertices, and for each path there are two possible winning moves for Ember, so the answer should be 36." Compare this to what you do.
I also think that CF should abandon the practice of answering every clarification if possible. It will decrease the number of clarifications and decrease the time to answer one clarification. If I can answer "Read the problem statement", that should be the answer. If I can answer "No comments", that should be the answer.
I think I'm finished with whining about my statements. Now about this doomed community of supposedly smart people.
The thing you did called bullying. There are people who downvote everything I write independent of content. Next there are people who disliked the consequences of my words, even my comment is correct. And there are also people who don't like that I'm saying my thoughts and don't respect their idols.
I liked first comment about "should stop creating problems", and first comment about this after the round. All others don't have own thoughts and have to repeat one thing over and over again. Now it is not a joke, it is being animals.
The same goes for "mind is weak". Yeah, guys, you are so original, it was not me who said it first.
To adequate people in this community: I'm tired of speaking truth. This not your truth? Explain me why am I not right, change my point of view. You think that I'm right in some cases? Speak it up. These animals can attack lone people, but if they will see that I'm not alone, they could think for once. You think that I have no right to insult people, but the idea is correct? Downvote me, say that wording is bad, but express that you agree with meaning.
MikeMirzayanov, I understand that for you quantity is more important than quality. I'm happy that you have your army of stupid fanatics who will write "You forget to hail Mike" under each post. This army has defeated me. Congrats.
It is true but what this statement is about? It has been like this for all the rounds I've answered clars to. The quantity changes from time to time, the percentage never. No matter how well your statement are written, there will always be people too lazy to try to comprehend them.
Wtf? Is it really ok? Is it us being too pedantic about it? Like for about the same participation rate we've never had over like 10 questions unanswered. And the round with these 10 has two or three somewhat unclear problem statements. Maybe you are too afraid of using basic Yes/No/No comments?
Can't agree more! Like I would write it in each of the statements several times for anyone to understand.
Waiting for the round to end to tell authors of their problem being incorrect is questionable, but your point is valid enough. I would prefer for someone to tell me about it, like, obviously, such a clar from a high-rated participant would be of greater priority. Some green guy with a similar question would look annoying to me, but the red one wouldn't for sure.
Is there such a practice?)
And the last paragraph. Why would their opinions even bother you? Why don't you just ignore the retards and answer in comments only to people who are genuinely interested in your answer?
UPD: Also, guys. If you tried for long enough to understand the problem and still unable to, at least try to state your question as if jury has three buttons "Yes", "No" and "No comments". It helps us so much.
Well... I didn't asked current coordinators, maybe that's my mistake. My first two rounds was with Gerald and Zlobober, both said something along the lines "If answer doesn't help with solving the problem, you should answer it. If answer is written in statement, copy that part of statement",
ewwwww
Clarification questions should only be asked by user above certain rating.
Ad last few paragraphs: I think you need to build up your smug anime girls folder. If you say tone doesn't matter, you must be prepared for shitposting.
I just read Div 2 C from your round. I understood it without any clarifications, the statement doesn't have any mistakes. BUT it is long and contain plenty of conditions which you should keep in memory simultaneously while reading and understanding it.
What's why so many greens complain: they doesn't have so much memory. I'm not green, but still had to spend some seconds to make everything clear for me: which rooks should be connected with which and which should not.
So, to all problemsetters: you should try to reduce the number of expressions and conditions in the statement as much as possible. It increases the readability of problems. Even if the statement is 100% correct, it still can be disgusting to read and understand. It's sometimes better to create a new problem than to use the one with long statement full of conditions.
I have an idea of Telegram channel: "Readability rating of problem statements".
If this message gets 322 likes, I'll start it!
Link please :)
Bet 100$ that you won't :)
But I just did! https://t.me/cp_statements_evaluation Where are my 100$?
Did you mean 322$?
Any plan to resume this?
Just found about this but sadly its inactive af.
No. It was a prank to get upvotes.
Dota 2 player found :D
You know what, I have that same issue you just mentioned. When I started coding here, the immediate thing I noticed was, there was so much information flying everywhere, and this was made worse by me not having great memory- it's my weakness and I know this. But, there's ways to work around that, and it's something I can work on to get better. Just by doing more problems, it immediately got somewhat better.
Making it easier for everyone is actually disrespecting them by believing that they can't figure it out. We can figure it out. Maybe not during the contest, or that day, but eventually everyone can understand it. Don't deprive the people of the struggle, that's the fun part.
Being mentioned in the shame list, I feel like I should respond. First of all, I certainly do know what "if and only if" means. I've asked the question because I've got confused about the wording of it. The difference is dismissively small, but still. Maybe, the lack of thorough explanation of even simple things like that (e.g. subsequence vs substring/subarray in most of problems mentioning them) made me unsure whether it means what it reads. That being said, I do agree that I should've read through the statement a couple of times more before asking.
Contribution is too precious for people to publicly agree with you. Obviously you should know that when you say something true, but in a non polite way there will be people saying something like this (nothing personal). And then a lot of people who see the comment chain after that will simply agree with the upvoted comment. Someone who cares about his contribution and agrees with you won't reply to the conversation as he obviously will get downvotes. So I think this is the reason you are mainly getting downvotes on your comments.
Also for a similar reason you can see the same joke (for example the "stop preparing problems" one). New users (and not only) want contribution, so why not write the same thing and get upvotes? Seems like a good idea. Most of the times those are retard so idk why you would care.
Generally most of the times the stuff you are saying makes sense and is true. The wording is awful tho. But still it's true.
So I just wanted to say that there are a lot of people I know (me included) who do agree with the things you are saying. So you aren't alone I guess.
And why adequate people care about contribution? The only reason I can think of is if they have chances of getting to top-10, so they are on the main page. But in that case, the optimal strategy seems to be writing useful blogs. So if you don't do that only posting comments that will be upvoted doesn't seem to matter.
Well you see, it's kind of saddening to see your comment getting -100 just because you decided to state your opinion.
Why is it saddening? It just means people disagree. I don’t see why upvote or downvote are so important in first place.
When it happens repeatedly, most people tend to stop voicing their opinions. So upvote/downvote matters.
Upvoting and downvoting an opinion shouldn't be based on whether you agree with it or not, but on the arguments that support it. Typical misunderstanding that leads to irrelevant values.
But basically having a -100 can feel like having 100 people that just don't follow the logic of the post. When these are part of a community of supposedly not retarded people, you might start questioning yourself. I still don't think that's a reason good enough to stop you from stating your opinion, but that is the sort of thing that might make you consider doing it.
This is the part that's not true
This is bias opinion. From perspective of genius like Iightcode everyone else seems like monkey scratching head, but not so much for average person.
noted
"contribution is too precious".... cry about it
I would say that you shouldn't care about those stupid people, and also that you should be more polite and respectful to people like misof, but your butthurt comments and posts are very funny, so please stay this way.
I didn't really care before. It hurts, of course, but I can live with that.
But I felt very bad after that comment about stupid clarifications. I was sure that it is true, but its score continued to drop (that was expected), it was getting some answers "we will decide are your statements good because we are legion" (not so expected but okay), and no one backed me up on this issue. It broke me. I felt like I can't really do anything about them, that they are legion for real, and there is no one who can defend my positions. And they are so sure that they are right, probably because their position is warming and millions of flies can't be wrong. Big thanks to Errichto for his words, I appreciate it.
And probably I should go and apologize to misof.
There was a problem with a square with even-length side and someone asked: "do both sides have to be even-length?". That was quite funny.
Stupid questions are always frustrating, and especially if there are some reasonable questions hidden between them. I complain about it with a coordinator or friends sometimes in chat. It's actually awesome that you decided to do it in public with some advice, because that might help people and decrease the number of stupid questions.
Regarding answering to questions — in important contests I prefer "yes/no/noComment" system, or an announcement to everybody if something should really be explained. It doesn't have to be that strict in regular rounds that are for practice, and many people are beginners.
Well, I don't exactly agree with some parts of this blog, and I don't like the part about sharing usernames of people asking particular questions, but it looks like a typical Um_nik — it is funny to read, and I like how you are bringing up topics which other people are afraid to touch :) I'm not going to ask you to be more polite, because I know that it is not going to help :D
I also have something to add / to complain about.
I don't know if there is a single "right" way to do competitive programming and single right approach to things like clarifications. I am used to the idea that for any question there are only 3 possible answers:
And out of those 3, last option is the right answer in like 90 to 99 percent of the cases. If you have to reply with something different from one of the answers above, it usually implies some serious issues with contest preparation. Even if you have to reply with Yes or No — it also often implies that something isn't OK with problem statement, like it being ambiguous. "No comments" block covers everything from "It is written in problem statement" to_ "Figuring this out is a part of the problem solving process"_. OK, I can also extend the list above with something like "We don't understand your question, please clarify/rephrase it" for cases of people having hard time with foreign language in international competition, to distinguish it from "We do understand your question and we are sure that it is stupid/poorly stated/bad/wrong" ("No comments"). 4 default templates, should be enough for pretty much anything that doesn't involve making global announcements in the middle of the competition.
You got backlog of questions during contest? Were there so many of them? (I have no clue because I never moderated contest at CF, so indeed it is possible that you have hundreds of questions to answer — then I understand it). Was it because some questions took too long to understand? In case it was because it took too long to answer — it is also your fault. And you are also contributing to the problem that you described. Seriously — most of the questions that you mentioned are just "No comments", which means spending several seconds to read the question (especially if you got similar questions earlier already) and a few more seconds to reply. By replying to them in more detail you are only contributing to the issue, sending a message that if somebody is lazy to read problem statement or lazy to think — they may ask organizers for handling that part and giving additional advantage to such contestants, making things unfair.
I'm quite sure that I also asked a lot of stupid questions during various programming competitions. I'm also sure that some of them have been asked when I already had red rating — it isn't just a beginner's thing. I should say that I'm getting much, much more questions in my head while participating in competitions — but I'm not asking most of them because it is almost always clear that either my question is stupid and I would get "No comments" or by the time I reached this problem there are other contestants who also discovered it and there is going to be some announcement very soon, so it is not worth spending both my time and time of organizers.
Back to the part about "right" way: there are (multiple) places and (multiple) sites and (multiple) contest organizers who have different views. They handle questions and clarifications in a different way, and because of that a lot of contestants also have different understanding of how it should work; moreover, their understanding is even somewhat correct — because indeed it matches with how stuff works in specific situations. So if you think that my or your perception (which seem to be somewhat similar) are right, and that different way to handle questions/answers/comments isn't OK — you should first of all blame organizers/authors contributing to it, and not "stupid lazy contestants". Seriously — reading problems carefully and using your brain is hard. At least that's how it works for me :) I can understand how those people may get that sort of questions, because I've been in such situations as well.
So how to handle clarifications? There are (multiple) platforms where moderators are answering questions already answered in problem statement, or they provide additional sample cases by request, or they provide answers to samples not given in problem statement; there are (multiple) platforms where questions are asked somewhere at the site without any proper moderation — in comments, or at some forum, or in problem discussion — and answered right there, often by other contestants who think it is perfectly fine to interact in such way during a competition; there are (multiple) platforms where it goes as far as people describing their approaches in comments/questions and asking if they are correct, or being like "I got WA with this, please give me a test".
Back when I was problem tester at HackerEarth, I moderated some of the competitions there. I should say that I was much more "friendly" than I'd like to be and still provided much more non-trivial replies than I'd do if it was contest like Petrozavodsk — keeping in mind that things work completely different at HackerEarth. Still I was replying with much more "Please read problem statement" comments than people expected. And I was getting replies back; I was getting harsh or rude comments; I was even getting people reaching me out elsewhere (like CF messages or some social network) just to tell me that I'm asshole, bastard, jerk etc., and I shouldn't take contestants like trash by replying with "No comments — please read problem statement".
And it is not like HackerEarth is a single site which stands out. Yes, at the very beginning you may have wrong idea about how all this stuff works. But figuring this out usually takes much less time than developing your skills to the level of beating Um_nik in competitions. When people are getting this kind of replies, and when nobody cares if they help each other, or when organizers don't mind helping them by providing them with pieces of information which is not provided to other contestants — people think it is OK.
When you know that you are likely going to get "No comments", which will not help you much, and you have a choice of either spending 1 minute on reading statement and thinking or spending that 1 minute on asking stupid question without getting anything out of it — such knowledge significantly increases quality of questions which make it through "Should I actually ask it?"
I believe it is pretty much ethical to give a slightly verbose additional explanation on the unofficial competitions like codeforces, even though that explanation is written in statements clearly.
While they are "unofficial", there are people losing their mind because of the number on their profile called "rating". There are even cases when it matters, like if this rating is used by coach at your university to pick teams for ICPC or when this rating is part of your CV used to get a job. I wouldn't make difference between those competitions and events like ICPC/GCJ/TCO where there are some prizes involved. At the end of the day — it is more or less the same sport and I'd like it to be fair.
I do agree that in some situations "being nice" has advantages like providing beginners with better experience; at the same time, I think it is really hard to strike the perfect balance there, and also it may lead to things getting out of control. So I'd rather allow some "verbose additional explanation" based on how experienced participants are and not on the kind of competition we are in. I'd still prefer my approach from the comment above, even if it is too strict — because it is easier to define and it doesn't have that problematic grey area. And if you have to do those "verbose additional explanations" — you should A) think about how to make it clear to contestants that they are expected to figure out such things on their own, and B) try to make your statements even more beginner-friendly.
I mean, I believe it is not a problem to explain exactly where the participant is wrong, instead of mere "yes/no/no comments". Unlike the participants of named champinoships, some participants of codeforces are participating for the first time in competitions of such a format.
Often, these explanations are just copy-pasted part of the statement, possibly redacted slightly.
For reference, my contest (#333) had 50-60 questions from both division in total.
As I already answered earlier (and mention in the post), to my understanding that's platform politic on clarifications. For all questions on matter of samples being wrong I feel obliged to answer something like "rooks can jump over other rooks" because 1. because of politics I have to answer something 2. I feel like that's the thing bothering participant. If I don't understand question, I read it again (the thing that participants don't think they have to) because, again, I have to answer something. Answer "question is unclear" was used by me in cases of really incomprehensible questions or when there is no question like "your statement is stupid and badly written".
Oh, I see that "I also think that CF should abandon the practice of answering every clarification if possible." part now. Just like with problem statements — reading carefully helped :)
So is it written somewhere — in some instructions for moderators etc.? Or is it more like "all the setters before did it this way, so I'll do it too?"
Have you tried to raise the question, or have it been discussed earlier? Is there some reason for such policy? Is there some specific motivation, like "we should be nice to participants to make them happier"?
P.S. And now while there are still no replies on this comment — I already found that it is partially covered in your other comment above.
When I was making contests with Gerald, I think he said that I should lenient with questions when I can. I was keeping some balance, but I tried to reply "Yes/No/No comment" when possible. I didn't feel there is any strict policy about answering the questions and I was using my own judgement most of the time.
When you answer "please read problem statement" you should provide the detailed instructions (http://codeforces.me/blog/entry/62730) as well
"Next there are people who disliked the consequences of my words, even my comment is correct". Maybe you meant "even if my comment is correct", else it would make no sense. When i said that the statement looks like is is done with google translate i wasn't irrational. :P....
Going after Mike is a bad thing my buddy, STOP IT ! U are also going after the entire codeforces, hope you thought about this before posting....
tragic arrogance
btw in the our world every game entertainment is oriented for noobs and casuals. cf doesn't need grandmasters. cf needs green participants who are ready to donate for mike because they think cf helps them somehow.
Don't green participants need to develop the skill of reading and understanding problem statements?
As they want.
can we just make rotavirus president of cf already
No, i am very busy for it
So I decided to look at the statement of the problem the fuss is about and I agree that the statement of problem the Div2C is very bad (probably formally correct (though it depends on your definition of "formally correct"), but still very bad).
Major complaints:
"Let's call the set of rooks on the board connected if from any rook we can get to any other rook in this set moving only through cells with rooks from this set."
For someone who does not know how the chess rook moves, it looks like the set of rooks being connected means it being 4-connected (or, less probably, 8-connected). For someone who knows how the rook moves, it simply looks confusing.
"Assume that rooks can jump over other rooks."
This part is even more confusing if you don't know how the rook moves. Also it sounds more like a start of proof by contradiction than like a part of some rule description.
"In other words a rook can go to any cell which shares vertical and to any cell which shares horizontal." There are two problems with this sentence:
1) It contiains all relevant information from its paragraph (the first sentence is simply confusing and the second is technically unnecessary, but probably should have been placed after this sentence to clarify up that the movement of the rook is interpreted in an unusual way).
2) "Shares vertical/horizontal" with what? Okay, I understand that with the rook, but still...
"It is guaranteed that the solution exists."
1) Typical question: is this guaranteed in jury tests or it is guaranteed for any possible test?
2) The use of preposition "the" heavily implies that the solution is unique.
Minor complaints:
"He also knows exactly m pairs of colors which harmonize with each other."
1) The fact that he knows these m pairs does not imply that there are not any other harmonizing pairs (though the input format clarifies the question and otherwise the problem would not make any sense).
"For any two different colors a b union of set of rooks of color a and set of rooks of color b is connected if and only if this two colors harmonize with each other."
1) "and" is missed here
2) "the union"
"coordinates of the next rook."
Next after what? Especially if you are printing the first rook in block.
"All rooks must be on different cells."
Are numbers 2, 2 and 3 different? Most people would probably agree that the answer is "no", but adding just one word "pairwise" reduces confusion heavily.
Also, there are some typos/misspelings. For example, "place this k rooks" (it should be "these" instead of "this").
The last point of mine is kind of strange, but i think that while using the word "harmonize" to describe some non-transitive relation is acceptable (but don't use "equivalent" to do that, please; even "similar" is already beyond the limits of what I would consider allowed), it is much better to use some more neutral word. In general, it makes much more sense to expect the word "harmonizing" to denote an equivalence relation than, say, "permissable".
Despite all these shortcomings, I understood the statement from the first try. However, I see how someone could be completely overwhelmed by the inherit confusingness of the statement.
Make this guy a cf coordinator
I understood the question and liked the problem itself. But in my opinion this paragraph was very confusing:
Let's call the set of rooks on the board connected if from any rook we can get to any other rook in this set moving only through cells with rooks from this set. Assume that rooks can jump over other rooks, in other words a rook can go to any cell which shares vertical and to any cell which shares horizontal.
What is this supposed to mean?
If I want to move from grid (x, y) to (x, y + k), does it require that there are rooks in all squares in between those two squares? (_moving only through cells with rooks from this set_). or
If I want to move from grid (x, y) to (x, y + k) does it require only 2 rooks in this positions? or
I can move from (x, y) to any other square which is in the same horizontal or vertical line without the requirement of a 2nd rook? (_a rook can go to any cell which shares vertical and to any cell which shares horizontal)
You can deduce that 1 and 3 are not what intended by looking at first sample.
One should not need to look at the samples to understand the problem statement.
While this would be ideal, I have come across problems that I need to read not only the sample, but also the note with the explanation of the samples to understand the problem statement.
I agree that one shouldn't need to look at the samples to understand the problem, but I don't expect this when looking at a problem, especially since English is not always the writer's first language.
You are wrong. Samples are the part of the statement. You should not consider yourself knowing the statement unless you got through them and through the statement part with their explanation (aka Notes section).
The main idea of providing sample tests is to help contestants avoid wrong understanding of statement. But this is not the one-way help, you should also help yourself by at least reading and understanding them.
PS. You forced me to write my first comment on Codeforces for 4 months.
I didn't say they are unnecessary, or that I don't read them. They can be useful, if for nothing else, then to make sure of the correct understanding. Nevertheless, the statement should be understandable without samples too. (In my opinion)
You are good person, but you shouldn't be that aggressive, if you speak with people kindly, people will also reply in a kind matter :)
Yes, this very post looks too aggressive to me.
Regarding the statement issue, it turns out, that the number of clarifications is the direct result of your work as an author. I have seen rounds with few hundred clarifications and rounds with 50 clarifications. There are some tricks how to make statement easier, like include an example in the middle of the statement, kick some legends out, and so on. It is the job of the problem writer (and coordinator) to make sure that statements are easy to read.
I haven't been participating in your round, but I've just look it over a bit. To me, the big problem is in D2A problem, its model is complicated enough to take few minutes just to understand it even for experienced participants, so it is not surprising that many beginners didn't managed to do it (in this case maybe you should have just replaced the problem?)
You can get from first lines that this was very much intended.
I don't understand the complaint 'the model is complicated enough to take few minutes to understand'. TAKE THESE FEW MINUTES. We are not playing the game 'write easiest problem you can'. At least I am not.
I can take these few minutes. But, as you can see, rather big part of D2 can't. Or at least not used to it.
Probably we can change it?
You can work on changing part about somewhat experienced contestants getting used to more complicated statements, but div2A is often about people who have almost no idea about CP. Why not to leave at least those entry-level problems short&simple (when possible)? It is a different story compared to problems aimed at people with a higher level and more experience.
Short and simple div2A would be "write what is written in statement" and I don't want that. Can you give some examples of div2A problems which are simple but still interesting problems?
Well, I would say that D2A's are rarely very much creative, but still it is not too hard to have it more interesting than "just write statement to code", like 1064A, 1011A
First one is cool, and for second I wouldn't say that this statement is much easier than in last round.
The minute of statistics:
Have you read these questions? >10 questions 'can answer be 0', when answer never is independent of allow we it or not. >10 questions 'Do they have to gift equal number of coins', often with citing the lines from the statement where it is written.
By your statistics the problem without any flaws can be the worst. Cool.
Sorry, but your spelling mistake made me remember a problem of mine :) 269C - Flawed Flow
A lot of problems at that level are "write what is written in statement". Or some contestants take it as "write what is written in statement" while for others it is more challenging. I don't think this particular div2A is too bad, I'm rather criticizing the overall approach described.
But let's even compare it to the problem from the previous round — 1072A - Golden Plate. Yes, I agree that it can be bashed as "write what statement says" — but I clearly like this problem more. I find it somewhat beautiful how you can approach it in different ways: either implement the algorithm described in statement and count cells one by one, or figure out how to describe cells belonging to particular ring by some "distance to the border" criteria and count them by checking some statement for each cell, or take another step and realize that you don't really need to find all cells but instead to simply count them — and it can be done by figuring out how many cells each ring consists of. Different approaches will lead to different complexity of implementation and different amount of time wasted.
I also like the statement more. It contains nice pictures, and people generally love nice pictures in statements (unless those pictures are from some anime and have nothing to do with the problem itself). In a team contest I'd be able to explain this problem to my teammate in a few seconds being like "We have this kind of shit given, and we need to count this kind of shit" while showing him an illustration from the statement. I don't see it working like that for your problem.
It is a matter of taste, but I think that having simple model is better. It often looks nicer, and for me it is a better "user experience" as a contestant — I enjoy thinking on solution more than a part about going through lengthy/weird/complicated statement and trying to get my head around it.
I agree that there are problems when you simply can't write it down in simple way; I also agree that in some cases simplifying the statement may require too much effort. At the same time, I think that "The problem statement was too complicated" is completely valid answer to "Which things you didn't like about this problem?"
Problems like div2A are important because they are what a lot of beginners have to face. They define that initial experience which affects chances of person continuing to do that. Even if you don't really care if some random Joe, who started to do competitive programming because he was told that it is needed to get cool job, will continue to do it or not — on large scale it is still something that affects you indirectly, as it affects things which you may care about. Like having bigger community and bigger market leading to having more interesting events etc. Maybe some of those folks would've stayed around for long time if not the bad initial impression. You are definitely doing a lot for developing community — in various ways, from creating different content (like this blog) to make it more entertaining to preparing cool problems for different competitions; but the part about "let's throw problems which are not trivial to understand into beginners" doesn't look good for community development.
They had problem B this time :)
But yes, I understand your point. I won't ask you here how to do it right because I already did it in different branch.
funny huh! come on dude we are not all fucking grandmasters like you so calm down, first I don't think you can share people's questions, I think MikeMirzayanov may have an opinion about it, second if you see that those questions are fucking stupid and the statement is clear enough just response "read the problem statement" no need for this silly posts kiddo.
I think you could write better sentences even in this articles without the sensational wording and the non-essential parts you think. There is no justification to say "please separate the wording problem and meaning" if you know how people understand your words well in advance. While we have to try to understand your opinions, as a writer, you could be better if you try to make your sentences simpler not only giving 100% "logically" correct sentences and critisism for people who don't understand them.
Personal opinion is here: Now that codeforces is the biggest international competition website. It's open to everyone regardless of his/her age, language ability, mathematical background, or even algorithm background. It's easy to happen that different people have different common senses. Clarification is a right of participants to calibrate it and contest organizers should pretend to think there is no stupid questions, but only answrable questions or not.
My proposal is just to make a more clear guideline about what kind of questions must/mustn't/should/shouldn't be answered via clar.
The problem quality does not depend on people's opinion. Round 446 was ours and it was pure shit except for 1 or 2 peoblems but people loved it so much!!
I remember someguy sent a message to me and thanked us for the awsome problems and I saw his color changed to red because of us :D
While participating in this contest, I also had a lot of questions. Most of them sounded like "why I am so stupid?", however, I also had questions like "is the harmony operation transitive?". I don't know why the statement sounded like we had to think about transitivity, maybe because, we, stupid people, try to make things easier (in case the harmony operation in transitive, the problem is just to find the connected components, which is a pretty standard thing to do, even for stupid people like me). But I didn't asked this question, because from past contests I learned that I should test my theories with sample tests, and in this case it helped.
So, to sum up to those guys who asked "stupid" questions, don't worry, you're not stupid, you just have to learn that "problem statement" doesn't mean only the history about an array gifted to Limak, but it also means some sample tests which can help you a lot.
Well, this is my first time asking questions in a CF round.
Now, I really think if so many people asked these many questions that the setter had to write a blog over it justifies that some statements were not clear enough.
Atleast there could be explanation of the picture of sample test case in div2. C
Anyways, the problems were of qood quality and was a very much balanced round and I seriously look forward to such rounds in the future.
I would also like to add, that for a lot of users, English is not our first language. As a matter of fact, until late in the round, I was quite certain that a rook was a knight, and that is why 'jumping' seemed strange to me and that is why I asked these 'silly' questions. I believe that an explanation of what a rook is would strongly reduce the number of questions. I know one was given, but when you I thought thst that was jumping over other pieces for some reason, and that is why it seemed strange to me.
Hey. First of all, I am very sorry that you reacted so sharply to the feedback from the community. In my opinion, competitors are often very intolerant to the organizers and do not always appreciate the effort invested. I have received rude messages hundreds of times. Some were justified in some way, some were not. I believe that I would be wrong to conclude about the whole community on the basis of this type of feedback. I will be sorry if you leave the community or your problems no longer appear on the rounds.
On the other hand, I sincerely believe that the participants need to be tolerant of the authors of the problems, not to allow rudeness and think what you write. All writers put considerable effort, trying to make a good round. I did not see a writer who tried to make a bad round. We all make mistakes or wrong decisions sometimes. A community that mainly exists at the expense of enthusiasts needs the support of each other by its members.
Speaking generally about problem statements. I believe that it is a joint task of the writers and the coordinator to write a understandable, comfortable and moderately detailed statements. Such that participants could concentrate on the solution without any guesses what writers mean. Most participants take part in contests to have fun and it is right to try to minimize a stress of reading problem statements.
In the round 518, the statements were not perfect. This may have been due to a lack of experience with the coordinator and excessive expectations of the writers. I'm sure that very soon 300iq will adapt himself to make the statements much clearer. He knows how to learn very quickly, I am really happy that he coordinates the rounds.
This round has 315 questions. For example, the next round (Educational 53) has only 75 (25 of them by the single troll person, so actual number of questions is ~50). Two previous rounds have less than 110 questions each. You wrote "90% of questions we get were caused by participants not able to read statements and understand basic mathematical constructions." I don't agree. I think this is an exaggeration. Also both the writers and many participants are not native English-speakers. Some questions were about wording. Some parts could become much clearer with a little more details, or examples.
I do not think that we are doing something wrong, always trying to make the statements unambiguous, easy to understand, regardless of the participant level, math background and English skills. Our community is really international and contains a lot of young schoolchildren. Almost always, if a participant asked a question, it means he did not understand or did not notice something in statements. Everybody can make a mistake. (There was a mistake in a validator in the round, right?) Making problems clearer you reduce a chance of misreading. If the round is prepared carefully, then the number of questions rarely exceeds ~100-150. Most of them are easy to answer, and together a writer and a coordinator can handle them without stress.
I'm a little upset and not sure I completely understand you in the phrase "I understand that for you quantity is more important than quality." Can you explain what you mean?
What about our round getting zero testers from the pool? I don't have English-speakers who I can ask to test our round. My English is far from perfect. So the solution is not to host rounds?
Sure I can. I am more important to this community than 1000 cyans. I mean, I was. But I do not convert to money.
Could you explain why are/were you more important to this community than 1000 cyans?
I generate content.
if those 1000 cyans dont participate in your contest then you won't be important
You can't read again?
And I'm not saying that I'm important like Mike. I'm more important than 1000 cyans.
How much cyans exactly do you worth?
And how much cyans is Mike worth? Also I'm interested about the cyan-green and the cyan-blue conversion rates.
I think Um_nik didn't say he's worth more than 1000 cyan because of his color, but because a typical cyan user doesn't produce any kind of content (except his own submissions) on codeforces and just uses what other users create (and nobody here is saying that they/we are doing something wrong).
I knew he meant this, it was just a joke.
https://codeforces.me/blog/entry/72809
cyan round <3
What do you mean "more important to this community"? If you kick out anyone (including you and me and anyone) from CF, nothing will change. Maybe, except for Mike and coordinator.
No one is indispensable.
:(
does this mean tourist is worth 1000 umniks?
There was a mistake in the validator in the round
Does Polygon run the validator on the all tests? If no, why?
It does. I don't know the details, but we may assume that mistake came out after some hack attempt which was validated incorrectly. Or validator just didn't say there are any issues on actual testset while there were some.
Statement was updated after the validator was written. In validator there was n ≥ 2, in statement — n ≥ 1. Obviously, there were no test with n = 1 because validator wouldn't allow it.
Didn't even systests contain a test with n = 1? or only pretests?
Come on, you can put it straight that you simply wanted to get more contribution by having two blogs instead of one :P
I've read the statement of 1068C - Colored Rooks, and the English is bad. Just a few examples,
I see two problems here: first, the author tried to overformalize the statement at the cost of readability. Second, again, the English is bad. Judging by Um_nik's comments, there was no English translator? I don't blame Um_nik, it should be the translator's (or statement tester's) job. I think, since CF is so international, there should be more effort put into translating the problems into English.
I completely agree with your point. I’ve encountered the same problem plenty of times.
Just a simple example: 912B - New Year's Eve. It’s clearly stated (and written in bold!) that you can take no more than k. Despite the definition being absolutely obvious, I’ve received a fair six tens of clarifications upon whether it’s necessary to take exactly k. Extremely annoying.
Apart from that, I find your behaviour purely abominable.
Was it worth mentioning all those poor guys who dared bother the allmightly Um_nik with their ignorant misunderstanding? They’re mostly young and inexperienced. Is this a valid reason for calling them animals?
From my point of view, it’s only you to be ashamed after all.
I think that after creating so average round you have no moral right to blame somebody else
I think, you're saying that 'average' is bad, so, umgh, is it that like half of contests on cf are bad or they're generally ok, but some few are that much bad so they make average bad as well?
please forgive Um_nik for having a weak mind, don't ask him to stop creating problems
are you and misof very good friends ???
It sounds strange. Like creating round might reduce someone's moral rights.
I don't know how creating rounds affects my moral rights.
And once more. This round was created mostly by kristevalex with my help and couple of my problems. div2C was one of my problems, and I wrote the statement for this one, that is why I'm using it as example. There were no questions on my second problem, all others were set by kristevalex.
How good is this community if novice author who did great effort on creating enjoyable round for you gets smashed only because I was helping him? Great community, I guess.
Most important is improvement and learning something from criticism... rather blaming whole community,...btw we all respect you a lot Um_nik...didn't expect such egoistic post from you :(...
If you are not good in English, it's completely fine. Even if you make a contest without native speaker it's still fine because you have a lot to offer. But if you are not proficient in English (or setting a contest together with someone who is), you shouldn't be setting tasks with that amount of text... And yes, of course you're more important to this community than me or any other green/cyan guy/girl but that doesn't mean you're flawless. By the way, speaking of bullying, see how much negative contribution will this post get even though, my comment has no correlation with problem solving skill.
Being mentioned. Can't stop myself but write. See my profile, its like an ant in the side of giant elephant like yours. So, is it wise to hart by such a little one? I cant suggest you, cause of being so small. So far i can remember it is the second time ask for the cleraficatio till i joined here. But can't imagine the fact that an issue can be grown up. I invented today that i should concentrate on learning english much rather solving problem for sometimes. Cause its become hard for sometime to cope with. I dont know english much and you can't belief the people around me just know nothing or little in english. Even you can find many mistake in my writing. So, i think its a much language matter than understanding problem for a very first time. As, where i can't complete reading a single problem and other get one accepted. So, i think you can understand my view of point. Things thats seems stupid to you can be much significant for others. But as you mentioned me and others which really heart me. Not fact, i think you got much thausands time bigger as i understand from your post. The only think i want to say- Don't mind to anyones says. They are not going to understand from your view (things may be really wrong although you think right). Things always change with perspective. So, i am really sorry at my side and last just want to quote — "Things not better to find the way to avoiding the mistakes, its really pleasure to take the responsibilities and find the way of how the mistakes can be resolved. Happiness is not that your own, happiness is that you can spread".
Don't apologize, he chose to ignore the perspective of many just like you.
A lot of respect for you bro. Keep doing what you are passionate about.
Being one of the persons named, I would just like to apologize. I guess I got confused about the notion of taking a union of the set of rooks. It was my mistake, and I am sorry. Overall, it was an enjoyable round, and I want to thank you for the effort you put in to set the problems.
Maybe it's meaningful.
I read the statement and I understood from first try (I did not even need to look at the sample input).
I agree that the usage of English is not very good. This is not Um_nik's fault, but CF's fault. Previously there was some professional translator at CF to make sure problems are properly translated. I'm not sure whether CF still have one?
The statement is very precise and logical. No stupid extra stories. The statement is quite complicated because the problem is complicated. I think as a problem setter Um_nik tried his best. It is quite unfair to compare the number of clarification with other rounds, because the complexity of the problem is different.
I am happy that Um_nik broke a border that was forbidden. I believe any other guy who would write such blog will get -inf downvotes or maybe get banned from the community.
I took a look at the problem mentioned that it had a really bad statement (for me I would say that it's just normal). In any case, don't expect the problem setter to score 5000 on TOEFL and write a Shakespearean problem statement. A lot of people among the top 100 users don't speak English. (probably almost all can understand, but writing and speaking are on another level so don't expect people to waste their time sharping their english for you if it's not really important for them). This should be Codeforces responsibility to make sure that every statement is well described and well-fit for the problem with no unnecessary and confusing details (hiring some russian TOEFL 5000 guy).
He mentioned also a good fact, the spamming of beginner users. That's something that has been bothering me for a long time. I really understand that as a beginner it's hard sometimes to understand the problem statement, but some reactions are really horrible. A lot of question arises because the reader decides to skip some english word thinking it's not important and writes a 10-15 words question that the answer lies in that word (for ex "if and only if", and i believe there are a lot of other examples), and I am dis-regarding really stupid clarifications. People who ask such question many times should be banned from asking clarifications temporarily (maybe 2-3 rounds and this process maybe monitored and approved by coordinator). and I believe if this was applied, the number of such clarifications will drop insanely. Because I suppose problem-setters and testers have other work other than answering clarifications. As I know, they spend quite a good time sometimes looking at solutions, sometimes looking at hacks..etc (so they have other work to do).
One other side of this matter I would really like to share, the tutorials and announcements blogs. These blogs usually contain a lot of gems. Almost for every problem in 3 or 4 some guy solve it with a really cool solution better than the author's solution and much more cleaner. We lose the opportunity to take a look at such solutions just because most of the times these blogs are full of "why my solution doesn't work?", "how to solve div2b" and such comments turning the blog into a spam mine. Somebody will tell me that useful comments are usually highly upvoted and you can check them easily (not all people would really like to check for and read most comments (at least for me)). and also the amazing feedback from people like "quit problem-setting" and some really disrespectful stuff. For me, I spend quite "a lot of time" to come up with some good problem, just because I am not skilled at this (I believe it needs a certain type of training or maybe a mega-mind that I don't have). So hypothetically if somebody write on a problem I wrote that it sucks or tell me such stuff I would react with something much more aggressive than Um_nik words (or at least, he should expect harsh reply). You must respect other people effort, especially if the person you are talking to is much better (or a legendary-guy).
For example let's suppose that I wrote "quit problemsetting please asap" as a comment or an awful round. My comment will get +200 from some people who didn't like div2A because it has 2D-arrays and that's not their taste. Then, Um_nik totally has the right to reply with "get red please, yellow loser" and then the same people will downvote him for being arrogant. Feedback in general should be critique and constructive not throwing random bullshit (always expect a reply of the same quality as your comment).
The community has grown really large, and the flow should be controlled somehow or at least organized.Especially the social side of CF. It has been the same for a long time without any big improvement and I think a change will be a must at some point of time.
As um_nik said, it seems the quantity for CF is more important than quality. I would like to share an opinion about this.
I really feel that CF is overlooking the quality in the last few months. For me personally, I quit participating in Div2 contests just because the problems are just repeated and put into the contest to fill the space. (I can recall this one:1042D as I participated not long ago, I remember I had this conversation with a friend and if somebody want I can recall a lot of other problems. A lot of stuff I also want to discuss (rated educational rounds, rating change formula...etc). I still want to make my comment not so long so people read (for now actually I think they might not read it).
Anyway, I love this community and I hope it continues with success. BUT, the heads should always remember that a lot of startups were left alone just because at some point of time they had a huge fanbase so they thought that they are perfect and after a while they found themselves alone. I would like to recall Nokia's CEO quote when they announced that the company is sold “we didn’t do anything wrong, but somehow, we lost”.
Do you have a suggestion? I skimmed your comment but couldn't find it.
Nothing really specific. Also not everything is embedded easily in CF. So I don't know exactly what they are capable of. But in my opinion, blogs should be classified based on some tags or something (blogs asking for help, blogs for tutorials, just social blogs discussing something out of CP...etc). If such thing is done, and user is able to control his blog-feed the experience would be much much better. Also blogs related directly to rounds (announcement,tutorial) must be controlled somehow so not anything is posted as a comment there (maybe there should be an extra blog named discussion as an easy solution).
The most important thing is to prevent users from posting stuff in other than it's place (as I suggested applying temporary ban is really good idea). I suppose hiring 2-3 guys also for monitoring the community is not a bad idea ( I don't know if they have the budget for that but just saying).
Basically these are solution I could come up with few minutes of thinking. I believe much better plans could be come up with.
Как многим известно, история идет по кругу.
Однажды вечерком Алексей Данилюк решил посидеть в интернете и почитать комментарии на Codeforces. Читает он степенно, скролля свой анонс, как вдруг видит комментаторов, обсуждающих задачи с его раунда. — А что, пидо.асы, — говорит Алексей, — понравились вам задачи? — Да пошел ты, Умник, на.уй, — ответствуют комментаторы. — Задачи несодержательные, ограничения блевотные, и дело даже не в факапе на четверть контеста, вот тут целый тред можешь почитать. Алексея чуть инфаркт не хватил. — Вы что, комментаторы?! — говорит он. — Вы мне, Великому Ум_нику, бывшему топ1 кодфорсов, серебру финала, топ1 ксакадемии, топ2 хешкода, топовому коачу, официальному лицу, служителю Господа нашего и Пастырю людскому, говорите «пошёл на.уй»? ДА ПОШЛИ ВЫ САМИ НА.УЙ
(с) Memes about competitive programming 30.05.2018
потом по кругу пошёл умник
Um_nik you should have simply said cry about it .