Блог пользователя ParsaF

Автор ParsaF, история, 13 месяцев назад, По-английски

Hello CodeForces!

I wanted to suggest a new registering policies/rules.

Let's take a look at AtCoder, a competitive programming website that we all know and love. When you want to register for a contest, you have two options.

The first one is Rated register and the second one Unrated register, You can't change these options at the middle of the contest.

If you choose the Rated register option, then if you don't even participate in the contest, you will still be in the standing and have impact on other people's performance and rating changes.

If you choose the Unrated register option, you can take part in the contest but your or other people's rating will not be affected at all. It's like doing a virtual contest.

But in CodeForces we don't have any of these fancy options. Instead if the contest is rated for you, you have the option to just leave after reading some problems.

But in AtCoder you are forced to participate in the contest no matter what.

Now in today's contest, Codeforces Round 908 (Div. 2), problem A had a hard-to-read statement, which lead to many participants who registered in the contest, not to participate in the contest, therefore other people's performance was affected by this.

24098 People registered in the contest but only 10238 people actually participated at the contest.

That is 13860 people registering but backing off after reading problems!!

If these people would have participated, the performance of other users would have been affected greatly.

I suggest that CodeForces adapts this idea from AtCoder and change the registering policies.

Do you agree with me? I would be glad to hear your opinion.

Thank you!

  • Проголосовать: нравится
  • +86
  • Проголосовать: не нравится

»
12 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I think providing 2 register options like AtCoder can lead to some drawbacks like cheating

  • »
    »
    12 месяцев назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    I agree. Some people will use two accounts, and submit in the account which uses the unrate option until it has AC. Then change some code (like the variable name), and submit it to the main account.

    • »
      »
      »
      12 месяцев назад, # ^ |
        Проголосовать: нравится +13 Проголосовать: не нравится

      I don't see how this is any easier under the AtCoder-style system than under the current CF system. One can easily register both for the contest and submit code from the second account before resubmitting from the first after getting AC (conditional on having a second account and being able to avoid plagiarism detection). The only drawback is potential rating loss on the second account, but presumably if it's your alt account you aren't too concerned about its rating.

      Off the top of my head, the only way I can imagine cheating under the AtCoder system is relatively minor. Because AtCoder lets you register several minutes after the start of a contest, one could register as unrated on a second account, read the problems on that account, and register as rated on the main account only if you plan to actually compete. Of course, this scenario is essentially equivalent to the current system on Codeforces (under which it is possible to read the problems before committing to being a rated contestant without cheating/using a second account).

  • »
    »
    12 месяцев назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I guess cheaters will always exist. One possible solution I thought was to allow one login per IP. But again people can use their phones to see the statements and cheat through that. To improve upon this, we could monitor login through locations, but this in turn is too invasive.

    So I think having 2 register options would not do much in the long run.

»
12 месяцев назад, # |
  Проголосовать: нравится +20 Проголосовать: не нравится

It's worth noting that your deduction that because 24k people registered for the competition but only 10k participated, 14k participants read the problems and left without submitting anything is incorrect. Deciding to leave after reading the problems is only one possible reason one might not compete in a contest for which they registered; it's likely that many of the registrants signed up in advance but simply didn't show up at the time of the contest.

Moreover, the Codeforces scoring system disincentivizes spending time thinking about multiple problems before submitting to the easiest one because your submission time for the early problems matters. There's some potential for e.g. a contestant who hates geometry to skim the problemset and leave if there's a geometry problem, but thinking hard about the most challenging problems and submitting only if you can solve them doesn't seem like an optimal strategy. This is in stark contrast to AtCoder, where your penalty only depends on your last submission time: in that setting, solving as many problems as you can without submitting any of them and submitting code only if you solve enough problems to earn +delta would be a viable strategy, so contests without the rated registration system would be completely unfair.

Especially because registration closes a few minutes before the contest start time (in order to assign contestants to rooms), I appreciate having the flexibility of registering well in advance of a contest before I know if I'll actually compete. This is only a minor advantage of the current system, but because I'm not convinced the current registration system meaningfully destabilizes rating calculations, I'm weakly opposed to this change overall.

»
12 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Not sure about rated/unrated registration. We have virtual contests after all. But what in my opinion should change is that if you have registered and opened a problem's statement, then the contest is rated for you are in the standings list no matter if you submitted a solution or not.

I think this is necessary because "solving problems that you like" turns into "participating only if you are sure you will gain rating". Yes, you will lose some time on checking your solution before submitting, but it's not that big of a deal. On the other hand, participating at all is a big of a deal. If you like/dislike geometry, then there is a huge problem archive for you with plenty of contests. One should not decide on participating after reading the statement.

Of course there will be people with second accounts, but there's little we can do with that, but prohibiting this behavior and making better plagiarism detection system.