adamant's blog

By adamant, history, 5 months ago, In English

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.

  • Vote: I like it
  • -25
  • Vote: I do not like it

»
5 months ago, # |
  Vote: I like it -13 Vote: I do not like it

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

»
5 months ago, # |
  Vote: I like it +100 Vote: I do not like it

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 months ago, # ^ |
    Rev. 2   Vote: I like it +24 Vote: I do not like it

    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 months ago, # ^ |
      Vote: I like it +29 Vote: I do not like it

    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 months ago, # ^ |
      Vote: I like it -16 Vote: I do not like it

    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 months ago, # ^ |
        Vote: I like it +14 Vote: I do not like it

      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 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

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

    • »
      »
      »
      5 months ago, # ^ |
        Vote: I like it +11 Vote: I do not like it

      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 months ago, # ^ |
        Vote: I like it +44 Vote: I do not like it

      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 months ago, # |
  Vote: I like it -10 Vote: I do not like it

ngaf

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

Look to this one: https://mirror.codeforces.com/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 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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 months ago, # |
  Vote: I like it 0 Vote: I do not like it

abcd