Competitive programming relies on a simple social contract:
- I solve the problem.
- I submit my code.
- I accept the verdict.
But what happens when the judge tells you that your solution "significantly coincides" with dozens of strangers you have never met or know? This is exactly what happened to me in a recent Div. 1 contest. I solved two problems independently. I did not use AI, I did not communicate with anyone, and I did not share my code. Yet, both of my submissions were skipped, accompanied by a system warning listing numerous contestants whose code apparently mirrored mine.
My first reaction wasn't anger. It was confusion, followed by the realization of a profound, structural contradiction in how we enforce academic integrity in algorithmic competitions.
I am writing this not to attack Codeforces, nor to ask for special treatment — I am publishing this openly because I have nothing to hide. But I want to talk about something much bigger: the inherent paradoxes of using automated probability models to determine human intent.
At Codeforces' scale, manual investigation is impossible. Automation is necessary. But when we blindly trust automated similarity algorithms, we run headfirst into four deeply rooted structural contradictions.
1. The Paradox of Optimal Convergence (The Gödelian Dilemma) Competitive programming forces participants to find the most mathematically optimal solution within strict time and memory constraints. By definition, an optimal algorithmic path is incredibly narrow. If multiple users perfectly understand a problem and write the most efficient logic, their code structures will inevitably converge.
The Contradiction: If the system is designed to punish identical logic, but the problem only allows for one mathematically optimal structure, aren't we inherently punishing algorithmic perfection? Does the system force legitimate participants to intentionally obfuscate their code—introducing sub-optimal variables or dead logic—just to mathematically "prove" their originality to an AI? Did we catch actual cheaters who obfuscated their code?
2. The Illusion of Syntax vs. Semantics (The Von Neumann Loophole) Modern anti-cheating systems typically scan for structural syntax similarities — often using Abstract Syntax Trees (ASTs).
The Contradiction: A malicious actor can easily use LLMs to alter the execution flow, swap templates, or change languages entirely to bypass the check. If a user steals the exact underlying logic but drastically changes the syntax to evade detection, while two strangers independently write standard, canonical code and get flagged, what is the AI actually measuring? It fails to detect the true theft of ideas, instead penalizing innocent statistical alignment while rewarding lazy obfuscation.
3. The Complexity Inevitability (The Kolmogorov Problem) For highly restricted problems, the required core logic is often under 20 lines. In information theory, this means the Kolmogorov complexity (the length of the shortest computer program that produces the solution) is extremely low.
The Contradiction: Given thousands of participants solving highly constrained problems using standard templates, identical code is a statistical inevitability. It is the algorithmic equivalent of the Birthday Paradox. How can a probabilistic machine confidently separate a "statistical coincidence of short code" from "intentional leakage" without producing an unacceptable rate of false positives?
4. Machine Probability vs. Human Intent (The Kasparov Defeat) When Garry Kasparov played Deep Blue, the machine didn't understand the "art" or "intent" behind chess; it simply calculated heuristic probabilities. Similarly, an automated AI judge flags coincidences based on matrix distances, hash thresholds, and probability scores, completely devoid of human context.
The Contradiction: Why should a purely probabilistic AI model have deterministic power over human intent? If an AI flags code with a 98% confidence score, what happens to the 2% of legitimate users who become statistical collateral damage?
5. The Rice-Shannon Contradiction: When the Machine Equates "Truth" with "Theft" To understand why automated plagiarism detection is fundamentally broken at the highest levels of competitive programming (Div 1), we have to look past the code itself and examine the theoretical limits of computer science—specifically, Rice’s Theorem and Shannon’s Information Entropy. Because of Rice’s Theorem, it is a proven mathematical impossibility to write an algorithm that can reliably determine what another program does (its semantic truth). Because the AI cannot understand the meaning of the code, it is forced to measure the shadow of the code: its structural syntax, Abstract Syntax Trees (AST), and structural entropy. This creates a devastating, highly counter-intuitive logical inversion that nobody talks about: The AI is structurally programmed to reward the behavior of a cheater and penalize the behavior of a master.
Here is the structural edge case: A malicious cheater’s absolute necessity is to evade detection. To do this, they must inject artificial noise or entropy into their stolen code. They use LLMs to scramble variables, unroll loops, invert logic gates, and add dead logic. The cheater intentionally creates a state of high structural variance. An honest Div 1 coder’s ultimate goal is the exact opposite. To conquer a mathematically beautiful, highly constrained problem, the master must strip away all noise. They refine and distill the logic until it collapses into its purest, most elegant, minimal state. The honest master intentionally creates a state of zero structural variance.
The Contradiction: Because the AI can only measure structural distance, it operates on an inverted topological metric. It defines "high entropy" (obfuscated noise) as human originality, and it defines "low entropy" (pure algorithmic elegance) as malicious plagiarism.
When two grandmasters independently experience a moment of genius — the Newton-Leibniz phenomenon of simultaneous independent discovery and distill a problem down to its absolute, naked mathematical truth, their structural distance drops to zero.
The AI does not see two brilliant minds arriving at the same universal truth. The AI, completely blind to semantics, only sees the absence of noise. And because it associates the absence of noise with "copying," it flags them.
The plagiarism system doesn't just produce false positives. It creates a perverse, dystopian reality in competitive programming: It mathematically protects the cheaters who maliciously butcher code to hide their tracks, while systematically hunting down and eliminating the honest programmers who achieve absolute algorithmic perfection.
To prove your innocence to the machine, you are fundamentally required to inject artificial ugliness into your logic. The system has redefined mathematical purity as a punishable offense.
The Danger of Automated Suspicion We are entering an era where automated systems are increasingly acting as judge, jury, and executioner. The appeal is obvious, but it creates a dangerous temptation: If the model says something is suspicious, we start treating the suspicion as the absolute truth. When the consequence is something as serious as losing an account, rating, or reputation, false positives are not just a technical inconvenience — they punish the exact logical convergence that competitive programming is meant to foster. Today it is competitive programming. Tomorrow it could be something much more valuable. We need to critically evaluate whether our tools are truly catching cheaters, or simply punishing those who found the exact same optimal truth at the exact same time.
I also attached some previous contest screenshots of my first submission on same problem I sometimes take screenshot when I solve problem must faster than others. Shall I make this as mandatory norm and only submit solution if it is first submission to prove myself? Or shall codeforces start offline contests?








Auto comment: topic has been updated by timeisvaccum (previous revision, new revision, compare).
this guy makes incorrect submissions almost everyday so his heatmap can be light green T_T
For me heatmap whatever map you want to track does not matter. I ask codeforces to remove heatmap. What does it prove then about my blog? Lets remove heatmap.
AI slop blog is not a good way to defend yourself :p
You did cheat, and got skipped. You will probably eventually get banned too. Just accept it and try doing better with your life afterward.
It is logically fascinating that you dismiss this defense as "AI slop"—implying algorithms are inherently flawed and incapable of valid reasoning while simultaneously treating an automated AI similarity-detector as an infallible oracle of absolute truth.
You don't actually know anything about what codeforces did to detect your submission :p. The flaw is in your assumption of how it works
I am sympathetic to those that are falsely flagged by automatic plagiarism detection, has happened to me too. Not to you though, you did cheat.
Yes this blog assumes that. But if you accept it has assumption and its correct too. How do you know then I actually cheated?
I almost believed him :(
There is always a chance you might not have cheated (I believe this is very very low tho) . chalk it up to bad luck very rare that this keeps happening again
You did not almost believed me but you finally yourself agreed. By admitting this could be "bad luck," you are openly conceding that the AI’s judgment is not a deterministic proof of theft, but a probabilistic heuristic thats what my point is.
These points do make sense in theory, but in practice if the true entropy is 60 bits (I feel like there are definitely 60 small differences you could randomly make while implementing a solution) then there will probably not be a collision for up to $$$2^{30}$$$ participants. Myself nor any of the people I know has ever had issues with the plagiarism checker across hundreds of rounds.
I guess you are assuming human programmers operate as uniform random number generators.
search space of 2^60 only requires 2^30 participants for a collision if the selections are made uniformly and independently at random. But competitive programming is the exact opposite of random. It is an extreme optimization process. Thousands of Div 1 participants are trained on the exact same textbooks, use the exact same CP-Algorithms templates, and share identical linguistic idioms. We do not distribute evenly across 2^60 possible syntax variations. Instead, mathematically converge toward the single most optimal, concise, and standard representation of the logic.
Because the probability distribution is intensely skewed toward these canonical peaks, the true entropy collapses, and the collision threshold is exponentially smaller than what you calculate.
By stating "there are definitely 60 small differences you could randomly make," you are inadvertently admitting that a participant must inject artificial, random variance (noise) into their code to evade the checker. Why should a GM programmer be required to artificially degrade their code with random noise just to mathematically prove their innocence to an AI?
Finally, arguing that the system is flawless because "neither I nor my friends have had issues" is textbook survivorship bias. You are using your personal survival in the fat center of a bell curve to completely deny the mathematical reality of its tail ends.
If a system requires me to artificially butcher optimal logic just to generate enough "random entropy" to satisfy a machine, are we really protecting the purity of competitive programming, or are we just forcing everyone to write objectively worse code? Thats why competitive programming makes people to write bad code in actual jobs.
Wasn't your atcoder account also banned
My atcoder account: https://atcoder.jp/users/vaccumistime. It was not banned I know from where you are coming but you intentionally chopping off some information (I wrote as edit in my prev comment). These types of comments, etc. have created polarised world today. Chopping information intentionally. That was my browser or site problem as login was not happening for short time
Auto comment: topic has been updated by timeisvaccum (previous revision, new revision, compare).
Auto comment: topic has been updated by timeisvaccum (previous revision, new revision, compare).
https://ibb.co/tTvQWXJ0
https://ibb.co/ympmsVb2
Pasting these screenshots as comment. Because some people without reading full blog post just read top comments which are intentionally given by some bad actors and conclude immediately to dislike the blog. I just saw these bad actors now started disliking my older posts too which are on different topics and has nothing to do with this post. This is happening in bulk. Does any genuine CPer exist in codeforces today or all are cheaters with fake accounts to comment, like/dislike? If any genuine person present, I would recommend to read blog post and see what logic of comments it has received and type of replies given to them. This will in itself prove where cheaters reside and why automated systems catching wrong people as cheaters and eventually I will also stop doing codeforces because there is no point unless problems quality is improved in contests. Instead of participants debating their mistakes I think its problem or contest creator responsibility to create good problems.
what exactly do you think these screenshots are proving?