I am a Chinese. Sorry if my English had some grammar mistakes.
In a recent contest: Codeforces Round 871 (Div. 4), I saw a “Successful hacking attempt” in the “Hacks” list. But I think this hacking might involve cheating.
Look at this hacked submission: 204925830.
The source code of the defender contained a “landmine”, which means that for some corner case (unlikely contained in test data), the code wouldn’t be accepted, which is intentionally designed for hackers.
Following is the source code (GNU C++14). Note the corner case in the code that would make it wrong.
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <set>
#include <map>
using namespace std;
string s1,s2;
int t;
int main(){
scanf("%d",&t);
s1 = "codeforces";
int ans;
while(t --){
cin >> s2;
if(s2 == "xxxxxxxxxx"){ // Here! The corner case
puts("-1"); // Wrong output
return 0;
}
ans = 0;
for(unsigned int i = 0 ; i < s1.size() ; ++i){
if(s1[i] != s2[i])
++ans;
}
printf("%d\n",ans);
}
return 0;
}
Therefore, for the case “xxxxxxxxxx
”, the code would definitely get “Wrong answer”. Unluckily (or luckily, for the hacker), this corner case wasn’t contained in test data.
Then view the hacking test.
1
xxxxxxxxxx
What a “coincidence”!
But do you think someone may intentionally leave a “landmine” for others to hack, and give himself/herself a chance to lose $$$50$$$ points? Anyone knows it’s impossible.
And see the rating of the defender: Newbie. I’m not discriminating against Newbies (since so am I), but this is one of the typical features of an alt account. In addition, he/she participated in few contests so far.
So, most likely, the contestant created an alt account, used his/her alt account to submit a “landmine code”, used his/her main account to hack it, to let the main account get extra $$$100$$$ points.
This is why I suspect that this hacking may involve cheating.
I’m not targetting any user. This example is just one of all. Actually I saw at least three such examples of “landmine code” hackings only in this contest (where some of the defenders are even Unrated). Cheating is shameful, but a flawed rule may also become a breeding ground for cheating behaviors. I think this phenomenon should be controlled.