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.
What? Are you saying that people shouldn't be allowed to use programming in a programming competition?
Did you even read?
not past the first two paragraphs, no.
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.
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.
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.
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:
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.
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.
Well, I'm board at school. I have nothing really to do. Just having some fun.
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.
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.
ngaf
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.
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
abcd