Yesterday, Furioso_Slient authored a blog article, in which he said that his submissions in Codeforces Round 1063 (Div. 2) were incorrectly skipped, and insisted he didn't cheat in the contest. I disagreed, and posted a comment to that blog post, showing some evidence that his submissions were indeed suspected to be AI-generated.
Today, he apparently made a reply to my comment, but I couldn't read it, because he deleted his original blog post for some reason. Now my comment is gone as the parent blog post is deleted. In this blog post, I recover what I wrote in my comment earlier with massive rewrites and additions, and try to explain why this person is a cheater. I usually don't write this kind of blogs, but I'm doing this time because (1) I don't want to waste my effort to investigate his submissions, and (2) I want to make him responsible for his own actions.
Evidence
I want to highlight his in-contest submissions to 2163B - Siga ta Kymata. He made six submissions in total; here are links to each of them in the chronological order:
- A: 348317920, submitted at 18:29:22, WA2.
- B: 348320121, submitted at 18:32:54, WA2.
- C: 348324641, submitted at 18:40:18, WA2.
- D: 348340077, submitted at 19:07:48, WA2.
- E: 348341711, submitted at 19:11:01, WA2.
- F: 348352209, submitted at 19:32:37, WA2.
I want to encourage you to look at the differences between A and B, and the differences between D and E (use the "Compare" button in the submission page). Those two pairs of submissions are only about 4 minutes apart each, yet there are surprisingly many differences between them (each pair).
Regarding A->B. This should be very clear; A is only 24 LOC but B suddenly becomes 161 LOC. It's very surprising if a human could write this amount of code in this short time period, in response to the WA verdict.
Regarding D->E. This is interesting in a different way. If you look at the diffs, you can see a lot of code churns that aren't fundamentally necessary. Examples include:
- A space after the keywords
if,for, andwhileis consistently deleted. - Variable names are renamed for no good reason —
get_min->qm,get_max->qx,L->l,R->r, andl->len. - Prefix
++operators are rewritten to postfix ones for no reason. - Arguments passed to
ios::sync_with_stdio()andcin.tie()are changed tofalseandnullptr, because they are cool, I suppose? - When a vector of pairs is printed, a structured binding is used for no reason:
- for (auto& pr : o) {
- cout << pr.first << ' ' << pr.second << '\n';
+ for(auto [l, r] : o) {
+ cout << l << " " << r << '\n';
At this point, it should be clear: a sane human contestant doesn't make such code changes during a contest. It's undeniably clear that he used AI for writing his submissions. The admins skipping his submissions was a right call.
That's it. Opinions welcome.



