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

Автор ShmilyTY, история, 2 года назад, По-английски

It's a serious blog.

This morning, I'm working on GYM104064. When I submited my solution, the verdict is WA on test 16. I had no idea if there's anything wrong in my code, so I checked the status detail.

On the test 16, the result shown as follow:

image.png

The checker comments: "output contains a duplicate Roman numeral". But as you can see, it is the Jury's answer that contains a duplicate Roman numeral. That's not my fault.

As there's some Accepted submission before, I rejudged some of them.

image.png

Every submission that had passed before failed on the test 16, same reason. I doubt someone abused the coach mode rights to modify the package of the problem I. I wondered how to redo his operation and fix the problem.

The purpose of the blog is not only ask for help, but also want to draw the community's attention on abusing the coach mode.

Thank you for reading.

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

»
2 года назад, # |
  Проголосовать: нравится +127 Проголосовать: не нравится

I've always felt coach mode is a bit too powerful. I'm honestly sometimes worried to accidentally delete / mess up something while using it. I think maybe coach mode should just allow you to access, and maybe rejudge, but not modify. That permission should be given on trusted one-on-one basis. Most people have no use editing the gym contests made by others.

»
2 года назад, # |
  Проголосовать: нравится +70 Проголосовать: не нравится

I think MikeMirzayanov can find out the person abusing coach mode .

»
2 года назад, # |
  Проголосовать: нравится +23 Проголосовать: не нравится

I don't think it's something related to coach mode, looks like it's a bug in the checker, but how could someone (possibly one of the contest authors) add new test that none of the package solutions pass?

»
2 года назад, # |
Rev. 2   Проголосовать: нравится +18 Проголосовать: не нравится

According to my understanding, if the checker comment is FAIL it means the jury's output screwed up in some way. Is that possible that the model correct solution is wrong (and someone added a test that hacks the model correct solution)?

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

    As there's some Accepted submission before, I rejudged some of them.

    Some of my friends got AC on this problem yesterday, but they can't pass now.

»
2 года назад, # |
Rev. 2   Проголосовать: нравится +18 Проголосовать: не нравится

As part of the jury of that year i can say the following:

  • That is the original testcase 14-max.in (numbering is off by two due to samples being numbered independently by us)
  • The answer you print is correct and also what our reference solution printed

Thus I come to the conclusion that someone replaced the jury solution. Unfortunately I dont have coach access and can't reverse this but you probably can replace the jury solution by this: https://codeforces.me/gym/104064/submission/182111793 (its the reference solution we used during the nwerc)

(The original checker does not even verify the jury solution and only reads the first number from the jury solution...)

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

    Would this not also imply that the checker has been replaced?

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

      I would guess that codeforces runs the checker against both submissions (jury and participant).

      Or there were already some changes made by niyaznigmatul when adding the problems. As far as I know polygon uses a different format than the icpc/kattis problem format which we used.

      But the reference solution must have been changed since the displayed output is not the one from our solution.

»
2 года назад, # |
  Проголосовать: нравится +66 Проголосовать: не нравится

I've found an issue and fixed it.

There was an issue with the solution that I've chosen to generate correct answers. Seems that it had some undefined behavior that was very rare to make solution fail. So it worked well in the beginning, and at some run after it regenerated correct answers it failed, and produced wrong output.

I've chosen the solution mentioned by MZuenni above to generate the answers.

I think that I managed to rejudge all failing solutions.

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

    You are right. Seems like you used reinier.cpp which breaks if I compile it with -fsanitize=address.

    Just for the fun, the error is in line 45 where a vector is created with size 4 but it should have size 5...

»
2 года назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится

amogus