What if “landmine codes” occur in hackable Codeforces contests?

Правка en3, от Zaoly, 2023-05-08 06:41:32

I am a Chinese. Sorry if my English has 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 may involve cheating.

Look at this hacked submission: 204925830

The source code of the defender contained a “landmine”, which means that for some corner case, the code wouldn’t be accepted, which is deliberately designed for hackers.

Following is the source code. 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 isn’t contained in test data.

Then view the hacking test.

1
xxxxxxxxxx

What a “coincidence”!

But do you think someone may deliberately leave a “landmine” for others to hack, and make himself/herself 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.

So, most likely, the hacker created an alt account, used his/her alt account to submit a “landmine code”, used his/her main account to hack it, to let his/her main account get $$$100$$$ points.

This is why I suspect that this hacking may involve cheating.

This example is just one of all. Actually I saw at least three such examples of “landmine code” hacking. I think this phenomenon should be controlled.

Теги cheat, hack, landmine, corner case

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en20 Английский Zaoly 2023-07-29 10:36:22 15
en19 Английский Zaoly 2023-05-08 17:15:40 3 Tiny change: 'Following is the sour' -> 'Following was the sour'
en18 Английский Zaoly 2023-05-08 17:14:52 3 Tiny change: 'ed, which is intentio' -> 'ed, which was intentio'
en17 Английский Zaoly 2023-05-08 08:34:12 0 (published)
en16 Английский Zaoly 2023-05-08 08:06:27 17 Tiny change: 'ating.\n\n\n\n[cut]\n\n\n\nLook a' -> 'ating.\n\nLook a'
en15 Английский Zaoly 2023-05-08 08:05:57 8 Tiny change: 'ating.\n\n[cut]\n\nLook a' -> 'ating.\n\n\n\n[cut]\n\n\n\nLook a'
en14 Английский Zaoly 2023-05-08 08:05:35 14
en13 Английский Zaoly 2023-05-08 08:02:02 84
en12 Английский Zaoly 2023-05-08 07:05:12 7 Tiny change: 'ating.\n\nI’m no' -> 'ating.\n\n---\n\nI’m no'
en11 Английский Zaoly 2023-05-08 07:03:58 16
en10 Английский Zaoly 2023-05-08 07:03:24 8
en9 Английский Zaoly 2023-05-08 07:02:45 117
en8 Английский Zaoly 2023-05-08 06:57:02 19
en7 Английский Zaoly 2023-05-08 06:54:39 7 Tiny change: 'takes.\n\nIn a r' -> 'takes.\n\n--\n\nIn a r'
en6 Английский Zaoly 2023-05-08 06:54:22 96
en5 Английский Zaoly 2023-05-08 06:49:31 214
en4 Английский Zaoly 2023-05-08 06:43:09 37
en3 Английский Zaoly 2023-05-08 06:41:32 415
en2 Английский Zaoly 2023-05-08 06:35:02 614
en1 Английский Zaoly 2023-05-08 06:21:31 1188 Initial revision (saved to drafts)