MikeMirzayanov's blog

By MikeMirzayanov, 8 years ago, translation, In English

Good afternoon!

I've decided to share my thoughts on the round 382.

Of course, it turned upset not only to me, but also to the round coordinator GlebsHP.

In this round the main negative feedback were caused by two problems: 735D - Taxes and 735C - Tennis Championship.

Regarding 735D - Taxes. I do not share the criticism to this problem. In fact, to solve it would be nice to be familiar with Goldbach's Conjecture and better with Prime Number Theorem. These facts are medium-popular in the world of programming contests. Familiarity with them is useful, gives useful insight into primes. It is important: in this problem it was necessary to perform a simple, but nevertheless, additional step to find solution. It seems to me that it's okay to use problems that have a reduction to some popular and semi-popular topics. Otherwise, it is thrown away a huge number problems.

As a summary for this problem. I agree that the problem 735D - Taxes is not an example of the best problem. But it has a right to exist as one of the problems in a round. It can not take a role of any argument in favor of unrated round. I personally, would not include it in my contest. But the fact of the use of the Goldbach's conjecture (and more prime number theorem) is not a reason for me to convict and forbid a problem.

The situation with the problem 735C - Tennis Championship is much more complicated. It is necessary not to mix the two fundamentally different reasons for occurrence of same problems:

  • Problems can be matched randomly, inadvertently. Of course, the coordinator and testers always have a critical look on the problem. At the stage of the contest preparation they immediately react if a problem is familiar to somebody. It is important to understand, that huge number of problems have been invented over the years of existence of sports programming. It is physically impossible to be familiar even with a large part of them. No matter how experienced the jury, sometimes, coincidences happen. Note that if the round is not a stage of a championship and its results do not affect prizes the main reasons for participation in it should be self-development and a desire to get a fan from the competition. None of these goals encourage search in Google.

  • Deliberate coincidence or reuse of problems, it is a different story. And here it is what happened. This situation is totally unacceptable (educational rounds do not count), it is necessary to fight with it and to respond rapidly to incidents.

As soon as I examined about the incident, immediately called by phone the writer and discussed (and denounced) the situation. I explained the inadmissibility of such cases and their implications. I think Albert made the correct conclusions and will be accurate in future. Unfortunately, I was informed about incident only after the ratings been updated.

Taking into account large number of participants who didn't notice the issue, who solved problems completely independently, who were happy of upset by their rating changes, shared their results in social networks it does not seem respectful to do to them unrated. I share the view that it would be better not to be so, but history has already taken place. Note that if I learned the situation during the round or immediately after, the outcome might be different. I think it's a good idea to report suspected cases through questions to give a chance the coordinator or me react quickly.

As a conclusion, I do not propose to raise the tragedy, coordinators do not despair. The writers, of course, need to understand the responsibility and importance of taking on the role. Thousands of participants come to solve your problems and, of course, expect something interesting and new.

I urge the community not to forget about respect for the work of authors: to prepare the contest is a big and difficult task. The author takes on a difficult role and if a round took place, so the hard way from the idea to the final implementation has done. Please, be grateful for it, say the authors, coordinators and testers, thank you!

Whatever effort the Codeforces team makes, we can not do rounds without the writers. Therefore, we look forward to your problems. Hope to see good and bright rounds here!

Thank you for attention,
MikeMirzayanov

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

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

After all, this was a good contest.

Also it adds to my knowledge. :D

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

Thanks for the response, it was an educational experience.

We respect your decision. :)

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

As writer of several rounds and many tasks in last time, man who finally succeded to reach div 1 on this contest and the most important man who loves codeforces I want to share my opinion and thoughts about all this things.

For me contest wasn't too bad, I do not believe that tasks like fourth is accepted from coordinator side, but still other tasks were new and interesting for me. The fourth wasn't bad at all too, but I think his place is more on educational round. Anyway as always I done everything alone and I am really happy that I got such good place on fair way !

Matching is happening, it happened to me at least 4-5 times (normally I didn't publish all such tasks), nobody can expect to know all tasks on the world, but situations with same tasks twice or even three times on the Codoforces are not good ! Coordinator must know 90% tasks from platform. Even with reading them one-two times he will remember the most texts... We are talking about red coder who is enough smart to do it, not about IQ sufficiant person!

Maybe one suggestion which can make Codeforces better in future contests, maybe you can use tasks from different authors like other platforms sometimes at the round. For example find three-four guys which will prepare many tasks for you and everytime when current setter don't have one or two proper problems just put task from well-known setter on that place. Also you can merge three authors and make two rounds from their tasks...

At the end I must say that all things are not so bad, for me and for some my friends level of last Codedorces rounds is again higher than before 3-4 months and there is much smaller amount of mistakes :)

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

Thank you for taking the time to write this so nicely.

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

Perhaps it's also important to raise this issue from albertg's post:

I waited for this round for a very long time, I sent my purposal 20th December. Approval came only 2 weeks ago, but some problems should be changed. Then I created a new problem (div2B), but I was unable to find something good about div1A.

Did albertg get informed that contest begins in two weeks, and he must change new problems in that short time? Or, he got informed about problems quality and was given as much time as he wants to prepare some new problems?

If it was the former case, I can understand why albertg (or any other problemsetter) might do it. Even for Div. 1 A, (good) problem ideas do not come from the snap of a finger, and sometimes I can come up with many good problem ideas in a day, sometimes I can think a week and I get not any good ideas. Still, in this case, he should tell GlebsHP (problem coordinator) that he cannot think any good idea, so maybe GlebsHP can contribute his own reserve problem, or he can request for more time. Better to have a delayed but good contest than a rushed but bad one.

If it is the second case, then this is just absolutely unacceptable, and albertg absolutely have no excuse for this situation. This is just a sign of laziness, and problem writers should absolutely never compromise the quality of a contest just because they are too lazy to come up with new problems. This is cheating the community from a good experience.

I also sent a proposal around this time (early this January), until now my problems quality have not been checked yet. At least, I know waiting game is being played by everyone else as well ;). Hopefully, problemsetters can learn from this event and take steps to avoid this tragedy from happening again in the future.

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

    I personally do not like to share any information about the internal processes, especially with people who are unfamiliar with how they usually look like. However, I consider it would be reasonable to step in now as the sentence being cited is really misleading and might cause the wrong understanding of how the preparation process looks like.

    The problem "Tennis" was proposed by Albert long ago the round was put in the schedule (in August to be more precise). Moreover, he wasn't asked to propose any new problems after the contest date was finalized.

    Some more internal details, not directly related to the issue. Usually, the problemset is finalized before the round is put in the schedule. It might not be the case only for very experienced authors which we are sure can deal with changes in a short period. If I request changes in the problemset with a few days to go before the round (that also happens) I always help authors to make these changes or even prepare something myself (for example, that happened with the problem div1C of Albert's round — I replaced it with the problem "Ostap and Tree" and took care of tests, sols, etc.).

    As for your proposal being waiting in the queue — sorry for that, one year is indeed too much. If you are still interested in conducting a round I'll take care of it in the nearest future.

    • »
      »
      »
      8 years ago, # ^ |
      Rev. 2   Vote: I like it +31 Vote: I do not like it

      "that happened with the problem div1C of Albert's round"

      Yesterday, I was telling myself although people criticize, his div2E/div1C problem is quite interesting and challenging.

      Anyway, thank you for the problem and the solution you explained.

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

I think there are three different reasons:

  • Accident. No writers or testers know the existence of the same problem. This is sad but is nobody's fault as Mike says.

  • Mistake. For example, someone have read the same problem but forgot it, the writer accidentally published the problem but didn't notice that, the writer has used the same problem but forgot it, etc. This case is similar to the case where the writer's solution is wrong — this is clearly a fault, the writer should apologize and try hard not to do the same in the future, but everyone can make mistakes. We shouldn't blame the writer too much. Personally I did this once: I tested both SRM 527 hard and SRM 669 hard.

  • Deliberate coincidence. For example, the writer intentionally uses his own problem twice, or steals someone else's old problem, in order to get paid with small amount of work (or for whatever reasons). I'd call it cheating and when this happens the writer is worth getting banned from the community.

And this case was the second but not the third, judging from http://mirror.codeforces.com/blog/entry/48663.

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

    I was just wondering what was the process of publishing the problem on SPOJ. Was it hidden from the beginning or was it available for a moment and then became hidden, because of some inconsistency in a statement?

    I just wonder if it was hidden, how did people find out about it? Do they just type spoj urls and different task names?

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

    While I agree with your classification of reasons and the way you judge them, I'm not sure if you are right considering the current case to be just a mistake. If the author knows the problem was used at some other judge but believes it is hidden, he must notify the coordinator about this.

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

      Carelessness is still a mistake, not intentionally trying to screw people over.

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

We all do mistakes. I think we should not make this such a big issue and continue doing what we must .

I am still very new in programming and from my perspective programming is like a game to me.

It gives me pleasure when i solve a problem . We all love it . We are problem solvers :p , we just want to solve more and more good problems and improve our skills . So thinking too much about this kind of issues will only ruin our focus .. :) .

We all know it very well that preparing a contest requires a lot of effort and is not an easy task at all . So Those who work behind the scenes require our support and motivation .We can at-least give them that . :)

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

I think the real problem here is that it takes 1 year so that your problems become a contest (the problem setter said he waited for a very long time and meanwhile he uploaded his problem to SPOJ). I know making a contest is a complicated process, but there is a lot of room for improvement in this area. It should take less time to make a contest, and this will result in more frequent contests :)

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

After all, Codeforces is my favorite contest platform. Thank MikeMirzayanov for great Codeforces.

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

To look at this from a different and positive point of view, I am very glad to see that issues like this are discussed in such a great detail and consideration. Shows what a great learning community codeforces is!

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

How many people were affected, anyway? If it was up to me, I'd lean heavily towards unrated, unless the affected set of people was really small or the problem was really hard to look up.

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

Thank you Mike for the explanation.

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

Speaking of hard work, the issue in a big contest website, such as Codeforces is much more complicated than "one small" contest.

Assume this situation: if the contest manager can ask writers to make problems (+ solutions, test data, editorial, etc...), how can you be sure that the writers will devote themselves not to make any mistakes?

Preparing Codeforces problem set is not a non-profit work, but the payment for writers here is much less than that of TopCoder. (I don't say about that of AtCoder, but you can guess some from Japanese competitive programmers' tweets.)

If you have a problem set that can be used for both TopCoder and Codeforces, which contest will you writer for? You may answer Codeforces because it has several times larger number of participants, but what if there'd be another contest website that pays a lot and has many contestants?

I'm anxious that when there'd be more contest websites which pay good writers more money than Codeforces, only less skilled writers who cannot write for high quality contests would remain here. I think so many Div2 only contests compared to the number of Div1+Div2 contests these months can explain some.

Of course there will be mistakes even with high payments, but you can start with high quality problems with much originality, and writers will check problems more carefully for keeping good terms with the company. That determines the quality of this website, and also, the amenity of entire competitive programming community.

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

    I don't disagree with any this, but it is still incredible to me that Codeforces as a product that is free can afford to pay writers at all, on a site that has no advertising or anything else. As a contestant I feel like I get a really great deal, complete use of site for free, all while Codeforces is paying to acquire problems :)

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

    What's the payment for AtCoder?

    There are large, fundamental differences between TC and CF. TC is a company, for-profit, which means it can give out more; CF is, afaik, dependent on sponsorship and maybe some university funding? Also, the living costs / salaries in post-USSR countries are different from the West.

    The key point of CF should be quality rather than money (especially once the bubble fails). When I was preparing a round here, there was no problem and everything was tested very thoroughly; dunno if it's changed somewhat, since I haven't been competing lately.

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

We can try to reduce the number of incidents by making sure that the staff of codeforces googles the problem name and problem statements and make sure that the problem isn't taken form somewhere else.

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

div2 D isn't a junk problem. it's math. oh right man,I know some people don't know about Goldbach's conjecture but you mean CF can only have questions that you know about? don't joke,bro.

PS: I remembered that there was several question in CF,using math theories I never used,like how many primes < n are there,n<=1e11.that can be a question ,so why this can't? by the way,I agree the difficulty of D is little low.I think it can be a div2C,but for div2D,it's a little easy.