jonathanirvings's blog

By jonathanirvings, history, 6 years ago, In English

UPD: 2018 ICPC Asia Jakarta Regional Contest problemset is now available on CODEFORCES Gym

UPD2: The original checker for problem C turns out to have non-deterministic behaviour due to insufficient array size. Fortunately, the false checking caused by the bug occurs rarely enough that the live contest (including the mirror in Codeforces) was not impacted (at least we did not receive complaints on the live contest). The checker was fixed on 23 June 2020 and all submissions have been rejudged. See this comment for more detail.

We would like to invite you to the mirror post-contest of 2018 ICPC Asia Jakarta Regional Contest. The contest will start on Sunday, 25 November 2018, 10.00AM Western Indonesian Time (UTC+7) (exactly 2 weeks after the real contest started).

The contest consists of 12 problems and you can solve them in 5 hours.

If you participated the contest, or have read the problems before, you are encouraged to not participate on the mirror post-contest :'( The problems should be available for upsolving after the 5 hours timer is up, though.

See you on top of the leaderboard (to those who plan to participate).

==== This post was heavily edited on November 20. The old post was kept below for archiving purposes. The title of the post was "2018 ICPC Asia Jakarta Regional Contest problemset on Gym" back then. ====

Sorry, I can't resist. (make sure to also read the "On a serious note" below the image)

On a serious note, following the comments on this thread, I am currently working on putting the problemset on (Codeforces) Gym, hopefully it can be done within a week or so. For those teams who are willing to participate in this contest virtually, my advice is not to read the problemset until then :) Stay tuned!

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

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

gym problem on gym machine :D

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

    I should probably add "Do Codeforces Gym contest on a Gym" to my TODO-before-I-die checklist.

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

By the way, do you know how hard it is to spread a competition problemset on a Gym treadmill and take a photo of it, without causing people around to think that you're crazy?

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

Auto comment: topic has been updated by jonathanirvings (previous revision, new revision, compare).

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

BUMPing this as a reminder that this contest starts in less than 12 hours :)

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

Why don't you add official participants here as ghosts?

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

    Yeah, sorry about that :'(

    I am still yet to understand how shadow scoreboard works (the format, etc.) and parsing the official scoreboard from DOMJudge might take some time (that I don't really have much) as well.

    • »
      »
      »
      6 years ago, # ^ |
      Rev. 3   Vote: I like it +10 Vote: I do not like it

      Give me the DOMJudge submission log. I will support it in my standings converter.

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

      You should find some Gym contest with ghost participants, go to ftp://taskbook.codeforces.com and find the "contest.dat" file correspond to that Gym. You will get to know how ghost works.

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

    Ghost teams based on onsite board have been added. If something is wrong, please contact me.

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

The mirror post-contest is over. Thanks for participating, and congratulation to ainta for winning it.

You can discuss the problems here if you want :) The scoreboard for the actual contest is available here (at least for now). The problem repository (including the problem analysis) is available here.

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

I got WA5 on problem C, but after inspecting my output it turns out to be correct. The same code resubmitted got accepted.

The analisys mentions the checker uses rolling hashes so I assume there were collisions.

jonathanirvings I propose to change the checker. One option is to recheck the output some number of times, like ~20, before judging WA. A deterministic option is to check if $$$max(lcp_i) < n$$$ after computing the suffix array.

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

    I don't know which checker is actually used but I found this one on github. This checker has a bug, the power array has size $$$N$$$ instead of $$$H$$$ (line 24).

    But for the second sample, my solution printed $$$3323134352$$$ which should be right and the above checker confirms it. But it got WA on codeforces. 84675626

    This should definitely be fixed jonathanirvings. The moduli in the checker above should be big enough to ensure that no collisions occur.

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

      [Old comment is obsoleted, I did not see the comment properly]

      The custom output validator used in the original contest and in Codeforces is the code found by MZuenni.

      As MZuenni hinted, seems like the error was caused by non-deterministic behaviour due to insufficient array size. Fortunately, the false checking caused by the bug occurs rarely enough that the live contest (including the mirror in Codeforces) was not impacted (at least we did not receive complaints on the live contest).

      I apologize for this error and will fix it at my earliest convenience.

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

      Update: The bug is now fixed, and all submissions have been rejudged. Thanks for reporting and apologize once again for the inconvenience.