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

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

Hi everyone!

Today, I noticed a comment by djm03178 who at the moment has +51 successful and -23 unsuccessful hacks in Round 952. If you look on the hacks, you'll see that e.g. last four were made in the span of one minute, and there are similar streaks before that.

It looks like djm03178 (and, to be fair, some other users too) uses some kind of automated tools that detect solutions using unordered_set or unordered_map, and then send hack tests in bulk. From my perspective, hacks that exploit programming language's internal bugs are generally unsportsmanlike and should not be encouraged, as hacks (imo) were designed to exploit algorithmic inefficiencies, rather than obscure language properties.

But even that aside, Codeforces rules seem to forbid using any kind of assistive tooling for hacks:

Attempting to digitally extract other contestant's code during the hacking is considered cheating. You may not use any technical/digital tools to obtain other contestant's code, including (but not limited) OCR, traffic capture, browsers plugins and so on. The only allowed method to analyze other contestant's solution is reading it in a hacking window. However it is allowed to manually retype the solution or it's parts to run it locally.

Sure, it may be questionable whether the paragraph applies when it is unofficial participation, and in an open hacking phase, where you can just copy paste code directly, but the wording as it is now is prohibitive in all cases. It also seems that such extensive hacking creates additional load on systests, as stefdasca recently noticed, so such automated hacking are also likely to violate the following:

You are forbidden to perform any other actions that can in any manner destabilize the judging process.

Also pinging MikeMirzayanov to draw attention to the situation and for potential comments.

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

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

What? Are you saying that people shouldn't be allowed to use programming in a programming competition?

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

It looks like djm03178 (and, to be fair, some other users too) uses some kind of automated tools that detect solutions using unordered_set or unordered_map.

I want to clarify: I didn't use any automated tool for this. The way I searched for these solutions was to sort the accepted submissions by execution time, and manually open the submissions one by one. It's usually the case that similar solutions have similar execution time so it's not very hard to find a number of them on the same page. Especially in this specific case, these probaly-cheated submissions are almost copy-pasted so they were just at the same place.

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

    If you want to see it yourself, you can check my hack list and see their execution time on the original tests: they're all pretty close to the time limit and it's generally in decreasing order of execution time because I started searching from the slowest solution.

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

    It also seems that such extensive hacking creates additional load on systests

    This only applies if you deliberately make essentially the same hacks only with a few variations. if you use the exact same test, duplicates are discarded.

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

    What the hell, you spent nearly three hours in Round 950 scoring 470 hacks without any automation? @_@

    Anyway, from some external sources I know for sure that there are people who automate hacking. This doesn't mean you in particular, as I simply assumed from circumstances, and I apologise that I apparently missed. But hacking in last few contests still has some peculiarities:

    • ImMcHe made 3 hacks between 00:40:28 and 00:40:29. And also 4 hacks between 00:19:44 and 00:19:48. And 3 hacks between 00:19:50 and 00:19:52. And then made 7 attempts from 01:41:09 to 01:41:19, consistently spending less than 2 seconds per attempt?
    • mohamedhesham consistently doing series of up to 5 successful hacks with 3-4 second intervals between them, having a total of 188 hacking attempts currently. He also made 318 hacking attempts in Round 944 and 654 hacking attempts in round 950.
    • qmk having at least 20 successful hacks on each of 7 successful hacks pages, incl. 40 on the first page. Having a total of 379 hacking attempts and continuously hacking for last 6 hours?.. He also made 359 hacking attempts in Round 950.

    Each individual case could as well be some obscure dedication to the hacking creed, but again, I have some external evidence that automated hacking currently does take place in such rounds.

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

      What the hell, you spent nearly three hours in Round 950 scoring 470 hacks without any automation? @_@

      You can say that I have an evil taste, but it's because it's super fun for me, to see that the submissions are hacked by me. These are one of the most exciting moments in CF for me, to be honest.

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

      Well, I'm board at school. I have nothing really to do. Just having some fun.

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

      Also, just to clarify, I went through people's code before I hacked. I only made hacks AFTER I assured them that the code would get TLE. I save the codes in a list of tabs, then submitting them all at once.

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

      Hello, just want to clarify that the today's contest is obvious to hack F problem in tle , last div 3 contest the hashing problem is also tle either in c++ or python by counter collections ,so i went through the codes of the contestants and save them in many taps then after become 6 or 7 and i know that they will be hacked , i upload generator for each of them then submit all of them at the same time.

      thanks.

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

ngaf

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

Look to this one: https://codeforces.me/contest/1985/submission/265415253

The guy hacked himself. Obviously some script to hack submissions that get acc.

Edit after Karim comment: Ok, sorry for the accusation. I just thought it was a little odd the self hack.

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

    most probably, he hacked himself to check if he's hackable .

    Also he hacked 14 people and failed to hack 33 people .

    which are not suspicious numbers

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

abcd