vovuh's blog

By vovuh, history, 4 years ago, In English

Alright, I'm done. I wanted to write a blog like that for a long time, but now I really don't have enough patience to ignore this issue anymore. I want to say that I get 100-200 clarifications each Div.3 round. It doesn't even matter how well the statements are, it doesn't matter if there are any issues with solutions or checkers, people always find what to ask.

Before I start whining here, I really want to recommend anyone to read these two Um_nik blogs: this one and this one. Sorry, Um_nik, I unnecessarily tagged you, I will not do that anymore.

Now some breaking news for most participants: your local IDE compiler and Codeforces compiler are actually different things! If your code works fine locally but gets WA/TL/RE/ML/etc on Codeforces, it (most probably) means you have a bug somewhere in your code. There are rare cases when the issue is with compiler differences, but these cases are really rare. If you have such issue, what do you think you have to do? Of course write a question about that! I got like 50 questions like this on today's contest. It's hilarious. I really suggest you to run your code in custom invocation tab instead of writing a question. If you run your code on Codeforces, you will get the output as it is here and, probably, you will understand what is wrong with your solution.

Also, I got a lot of questions about the problem 1433F - Zero Remainder Sum . Many people were confused if the whole sum you get should be divisible by $$$k$$$ or the sum of each row should be divisible by $$$k$$$. The thing I want to recommend here: read Um_nik blogs. Whoops, unnecessary tag, sorry. To be fair, you could maybe... probably... at least read and understand the first example and the Note about that (the matrix of size $$$3 \times 4$$$, $$$12$$$ elements, come on, it is not hard). If you read that, you will understand that the whole sum should be divisible by $$$k$$$, because otherwise the example answer is wrong. There were no sentences showing that you should consider the divisibility of each row. I make Notes section exactly for such cases (when something can be misleading or unclear). I'm also trying to make examples as clear as possible, to try to cover every possible case that can confuse anyone (this problem was not an exception).

The thing about clarifications that really makes me burn: why do you think that your question should be answered immediately after you send it? The answer time here is not more than $$$5$$$ minutes usually. I heard that the answer time on other platforms can be much and much more than here. Also, please, take in consideration that Codeforces is a huge platform and there are almost 17 thousands participants in the today's round. 17 thousands people versus me and sometimes, maybe, MikeMirzayanov, BledDest or someone else who helps me with questions. When you are spamming something like "why my question is not answered?? please answer!!" you are just increasing the amount of work for me and the waiting time for others. I always answer all questions, you just need to be a bit patient.

About the problem 1433E - Two Round Dances. Yeah, the statement of this problem was really misleading and didn't match the examples, and I'm really sorry about that. We added this problem like $$$2-3$$$ hours before the round start just to smooth out the difficulty curve. This is pretty old problem that was already partially prepared. I read the statement, wrote the solution and it matched my understanding of the problem. I wanted to write proving naive solution a bit later, but I had too many things to correct in other problems' statements, so I completely forgot to do that. Sorry for that issue, this was my fault.

Continuing the previous paragraph, I want to mention two people (without their handles, it will be obvious to them even without direct mentioning): one guy wrote that "this round is complete disaster make it unrated". I opened his submissions list and saw he solved only A and B. The only thing that could make this round unrated is the wrong statement of E. He didn't even solve C and D. I asked him if the issue with E really affected him when he didn't solve easier problems, but got no answer. The other guy was really rude, and he flamed so much. As the last question from him, I got "what the hell is this there is no mention of rotation in the question. do you realize that?? give you handle i will talk to u later" (this is a citation). I'm really sad about that. I don't understand why some people think they can just talk like that to others.

Some things about previous rounds: one day, I got so many questions if the round is rated or not during the time we were figuring out if we really have to make it unrated. I got something like $$$50$$$ questions about this and just answered "read the global announcement". $$$50$$$ times. I wasted like $$$5$$$ minutes to answer all such questions instead of answering the real ones.

About English: so many questions have pretty strange English and I just can't understand what are you trying to say/ask. Please, try to make your question as clear as possible, because if you just write some sequence of words and send it to me, I will answer "question in unclear" (after spending like $$$30$$$ seconds trying to understand that) and will wait for the real question instead of the sequence of words without meaning.

And, in conclusion, I want to recommend you: read Um_nik blogs (whoops). He did really great work about how to read and not to read problem statements. These blogs are a high quality source of understanding how to read and understand statements. Please, read the statement, read the Note, try to figure out the answer on the example, read the global announcement before asking the question. Much question answers can be retrieved from these things. I'm exhausted because of answering questions that are answered in the problem itself (the great example is today's problem C. I got like $$$10-20$$$ questions like "can there be several answers???" but it was bolded in the statement).

I'm done. Thank you for reading if you had patience to read all my whining. Feel free to blame me or something like that, I understand that I'm not perfect and make a lot of mistakes.

  • Vote: I like it
  • +979
  • Vote: I do not like it

| Write comment?
»
4 years ago, # |
  Vote: I like it +108 Vote: I do not like it

We appreciate all the work and rounds you have provided us sir, please do not forget that many people still appreciate your rounds, don't let those people bring you down, keep up the good work!

»
4 years ago, # |
  Vote: I like it +56 Vote: I do not like it

vovuh Don't feel discouraged by these negative and rude messages. Chances are they did not perform as well as they expected so they just got mad. Some people are just really self-centered to a point that they lack the basic gratitude for someone who volunteer his time to make this contest. I am sure most of us still appreciate your efforts to make div3 contests for beginners. The questions you got on problem F are just absurd, how hard it is to read through the provided examples?

»
4 years ago, # |
  Vote: I like it +19 Vote: I do not like it

I personally didn't find anything wrong with the statements for any of the problems and the statement for F has no reason to be misunderstood. E could have been improved a bit true, but there is no reason to roast someone who is making contests for you voluntarily. What I do have to ask is why the pretests for F were so weak? Nonsensical greedy solutions have passed pretests as well and tons of DP solutions have also been hacked.

»
4 years ago, # |
  Vote: I like it +60 Vote: I do not like it

I was doing cp for years and untill now I dont know how to ask for clarifications...

»
4 years ago, # |
  Vote: I like it +187 Vote: I do not like it

What if you forbid greens and grays to ask questions? If something is really wrong, a higher rated person will surely ask it.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +6 Vote: I do not like it

    It is discriminating to forbid. But they can be deprioritized this way or another. I don't know how the clarification interface looks, but it would make sense to include the color there and allow drag and drop the questions depending on the importance of the question.

  • »
    »
    4 years ago, # ^ |
    Rev. 2   Vote: I like it -48 Vote: I do not like it

    Another idea is to let anyone ask any clarification questions and let those questions posted publicly below the problem statement, if the question will be relevant it will be answered by anyone including setters and will get upvotes else irrelevant and unnecessary questions will get downvotes to demote such questions in future and due to the question being public people will think twice before asking.

»
4 years ago, # |
  Vote: I like it +124 Vote: I do not like it

Only 100-200? I got 416 clarifications on round 639. I can confirm that patience and carefully reading the statement are very important.

»
4 years ago, # |
  Vote: I like it +366 Vote: I do not like it

The tagging only shows one time no matter how many times my handle is in text :) I'm ok with tagging when it's relevant and it's relevant here for sure. I hope that many newbies will listen to you (as I can see in comments most of them enjoy your work as div3 author) and I will be glad if my blogs will reduce the workload of answering tons of stupid questions.

»
4 years ago, # |
  Vote: I like it +31 Vote: I do not like it

I wholeheartedly agree with your points, during my round we literally got 100 questions about the same thing(whether one can output multiple solutions for B or not), and it was stated in the statements.

Even after we posted the clarifications, we kept getting the same questions, and this is pretty disturbing.

I would go on to say that such things happen pretty much in every round and they are quite annoying, can other authors confirm it?

»
4 years ago, # |
  Vote: I like it +40 Vote: I do not like it

As the last question from him, I got "what the hell is this there is no mention of rotation in the question. do you realize that?? give you handle i will talk to u later" (this is a citation).

Its disheartening to see this. Problemsetters and co-ordinators deserve huge respect for the work they do. It's hard to even imagine the amount of hardwork it would take to organize a contest successfully.

P.S. Most of the community appreciate your efforts and we are grateful to all the problemsetters . Thanks a lot :)

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

    They feel entitled. These are the same people who grow up and become your arrogant co-workers

»
4 years ago, # |
  Vote: I like it +8 Vote: I do not like it

I don't think many beginners who ask such questions will go through this blog, because many of them do not open recent actions blogs. We can add this blog to some kind of terms and conditions while registering for a round it shows up and you can only proceed when you click accept and continue. By doing this way atleast more people will be aware of such things.

»
4 years ago, # |
  Vote: I like it +10 Vote: I do not like it

I think the contest had enough good problems, so I'm not sure if adding problem E 2/3 hours before the contest was a great idea. Id prefer quality over quantity in any contest.

»
4 years ago, # |
  Vote: I like it +56 Vote: I do not like it

Okay, here come the testers comments.

(Honestly, I have to take a part of the brunt for problem E, but I'll come to that.)

I got testing access about 6 hours prior to the contest. Lazy me decided to do a VC of the same about 3 hours before the contest, and I (fortunately) finished the round in about ~1 hour. I largely help vovuh in fixing the english statements so I started reviewing the statements about 1 hour before the contest.

About this time, the current problem E was added to the set (to flatten the difficulty gap between D and F). I didn't attempt the problem (problem starts here) since it was added after I finished the VC, and it looked like an easy formula specific problem. So, while reviewing this problem, I chose to skim through it (I donno why tho), denying vovuh of the valuable tester and statement verifier feedback. So I'm partly to blame for the issue, and I'm sorry for it.

Now, regarding F, I didn't anticipate greedy solutions to pass. Two reasons are:

  • I couldn't see test cases in the mashup.
  • It's rare to have dp problems with weak tests.

Honestly, I wouldn't blame vovuh for it too, since the problem of weak tests was difficult to detect.


Now, general facts about the contest preparation. vovuh works really hard to make the contests (as I've seen his dedication in the contests I've tested) and is always ready to take constructive input to make the contest better. In fact, he tries his best to make clear statements, even tho English is not his first language.

Kudos to him for his work and dedication towards the cf community!

»
4 years ago, # |
Rev. 2   Vote: I like it +49 Vote: I do not like it

Half a year ago there was a discussion about lowerbound for participating in div2 and also for asking questions (https://codeforces.me/blog/entry/77035). I still think that the latter is a great idea without any disadvantages, especially if the author of tens of recent rounds complains about the number of questions.

»
4 years ago, # |
  Vote: I like it +37 Vote: I do not like it

I remember back in the days after some contest I was one of the authors (I think that was some Open Cup or similar) I was called with many different Russian curse words. I am sure it is possible to find those comments now, since that was here, but I don't really feel doing that :) That came from red coder, so there are jerks in general. I was hoping that dude could advance to any finals in California and then tells me that face to face!

Making contest is not easy especially for that number of participants. Thank you for doing that!

»
4 years ago, # |
  Vote: I like it +21 Vote: I do not like it

Man, I really felt your pain right through my soul. :(

Suggestion
»
4 years ago, # |
  Vote: I like it +12 Vote: I do not like it

I think that the best way to clear this will be to have a lower rating bound for asking questions. It should be atleast 1600(or 1400 in the absolute worst case). As a pupil, I still think that this should happen

»
4 years ago, # |
Rev. 3   Vote: I like it 0 Vote: I do not like it

About English: so many questions have pretty strange English and I just can't understand what are you trying to say/ask

Difficulties with English is one of the reasons why people misunderstand problems (though I assume it is far from being the most important one) One of the recent examples is https://codeforces.me/contest/1407/problem/A with words "The elements that you remove don't have to be consecutive"

If you look at the comments in both the announcement and the editorial, plenty of people concluded from those words that they're forbidden to remove consecutive elements (totally the opposite of the original meaning!)

»
4 years ago, # |
  Vote: I like it +6 Vote: I do not like it

I'm surprised there's no mention here yet of How To Ask Questions The Smart Way by Eric S. Raymond.

It's ancient, arrogant, and condescending.
And it does have a point.

It's only tangentially relevant here, but it shows a useful mindset for asking questions in general.

»
4 years ago, # |
  Vote: I like it -7 Vote: I do not like it

I think you have the right to ignore not so relevant questions, then people will stop spamming and send really important ones.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +29 Vote: I do not like it

    But then they receive questions about not answering the previous questions.

»
4 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

Completely agree with vovuh. I understand there were clarifications needed in E and F today. I wasted 2 minutes trying to understand what to calculate exactly. But my point is can't you use common sense? I mean, the sample cases clearly told you what to calculate. And also, for me vovuh is the best Div3 problem setter. His problems have always taught me something new.

If you feel he is bad, don't give Div3. One thing I learnt on CF is that the only person you can blame for your bad contest is YOU YOURSELF. Remember that !!

»
4 years ago, # |
Rev. 6   Vote: I like it +1 Vote: I do not like it

Thanks for the contest

»
4 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

I am a simple man , when I don't get a problem I leave it.

»
4 years ago, # |
  Vote: I like it +11 Vote: I do not like it

What is Custom invocation tab?

»
4 years ago, # |
  Vote: I like it +31 Vote: I do not like it

I was wondering if it'll make sense to allow volunteers to help answer questions as well, these volunteers could be part of the testers or just friends in general.

Based on my experience of my previous round which had 5 setters + 1 coordinator, it was not very taxing on us to answer all the clarifications. But of course, I can understand how if a contest has 1 or 2 setters only, it would be really tough to answer all the clarifications, the manpower would be two or three times fewer.

I was thinking if we just rope in one or two more friends or testers (who are willing) to help answer clarifications, we could answer clarifications significantly faster.

Of course this would mean giving non-setters access to the admin panel, would there be issues with this?

»
4 years ago, # |
  Vote: I like it +17 Vote: I do not like it

For contestant who are new in codeforces, my advice is to always believe if other contestants are getting accepted in a task and you are not understanding the problem statement or getting wrong answer then you have problem, the problem statement is fine. And if there are serious issues, trust me it will be resolved before you move onto that problem or the contest will be announced unrated. So, chill and let the high rated coders ask the clarification.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I wonder why people don't understand such a simple thing. And where are such people, why don't they write anything here in the comments section, I want to understand their mindset

»
4 years ago, # |
  Vote: I like it +6 Vote: I do not like it

Making the Q&A public might help a bit. I know Atcoder is doing this, and normally I find the answer from there before send it.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

    Problem with making public is people can discuss and it can give a platform to cheaters which can lead to contest being unrated

»
4 years ago, # |
  Vote: I like it +12 Vote: I do not like it

I have a suggestion vovuh. Perhaps we should only let people with a minimum rating of 1400 "ask a question" in Div3 rounds.

The logic here is that with a minimum rating requirement, only good questions will be asked, saving the time of the problemsetters. Additionally, high rated people will get to the question long before the newbies even read it, so that by the time the newbies reach the question, all necessary clarifications will have already been made.

»
4 years ago, # |
  Vote: I like it -8 Vote: I do not like it

Whatever they say this last div3 It has been very good. thanks for everything!!! thanks to the div3 I was able to upload to expert