My friend Away_in_the_heavens sent me a screenshot that left me completely shocked.
I have never seen anything like this on the platform before:

The image shows the standings of today’s round.
For comparison, here's what standings typically looked like across 100 previous contests:

Of course, incidents of unfair play have happened before. However, judging by today’s round, the number of cheaters has increased tenfold, if not a hundredfold. And the reason is clear — the appearance of tools like ChatGPT o1 or ChatGPT mini-high-3, which are apparently capable of solving problems up to ~3000 rating in just a few minutes.
As a result, the round turns into a minigame for cheaters: who can type faster or debug ChatGPT's solution more efficiently.
In my opinion, the current state of affairs calls for action. Perhaps it's time to reconsider the rating system or implement new mechanisms to address such violations.
I’d love to hear the thoughts of both the Codeforces team and veteran users who have been on the platform for many years.








Despite the privacy concern, phone number verification (or similar things) might be one of the solid solutions for this. Once a user is flagged as cheating, their phone number will be perma ban.
I ain't giving my phone number for internet points
It's a trade off
I think like that too, how is the system gonna know that this is a new user but not some guy using his 10^9-th relative's number just to cheat in a platform called "Codeforces"?
practically how many phone numbers one can change?
max 10, and everytime they will start as newbie
no there are esims you can buy for less than a 20th of chatgpt subscription they might buy for cheating
But everytime 5hey will start as newbie right?
Bro, you have a strange rating graph. I think it's better for you to stay quiet, otherwise you will get caught, bro… or should I say, cheater."
what about gps access and ip adress?
i mean be real, most of us give away our phone number for far more silly things, like social media websites
Meow
Once user flagged as cheating, he should be boiled alive and eaten by those who he passed in standings!
It should be user's home address so that people can come punish them in real life for their actions
Single-use phone numbers are much cheaper than chatgpt subscription.
bro, you need only one gpt sub
The funniest part is they put such names like see_me_becoming_CM etc. and using const vector and don't even know what const do.
I think codeforces should add some features that if during contest user switches tab and goes to AI tool codefroces team get alert and ban that user from contest or publically show in user's profile AI generated code has been submitted by user during contest.
But it is big privacy concern for all users.
In this way someone can cheat using other devices
cheaters would just use 2 or more devices
Cheaters can use any other device if not the one in which they are giving contest
They literally can open their phones and take a photo of the problem and have the correct answer and write it down manually instead of copying it.
Ironically, not only greys are cheaters. That is, one could very promptly reach blue/purple in couple of contests using LLMs and blend in with legit contestants. So you can't really differentiate at this point without carefully inspecting submissions.
Moreover, even guys who did not cheat in the past, now resort to LLMs. Look at tickbird, for example. D took him 9 mins, while jiangly and most other reds spend about 15+min. Also, tickbird probably cheated in the contest when he got blue before, again in D.
make all codeforces rounds in person, so you have to go to ITMO university and get invigilated by mike personally to get rating
this actually severely demotivate people under orange
and it becomes a huge obstacle for newcomers to get started CF
I'm underground CS student but I can say if you saying I'm doing CP to colleague then 90% would laugh at you.
and I agree with them, I don't see any point of 'competition' under Div.1 at this point. unless run in onsite.
How to be an underground CS student?
be a CS student and live underground
All CS students already live underground. Many have never seen the sun or woman race for that matter.
He meant undergraduate
Cheating is an existential threat to this platform.
If care is not taken, it might spell the end of this platform.
THAT IS SO TERRIBLE TRUE
why do i feel this comment is AI generated :sob:
it's really not that bad.
They should implement phone number verification. Does not matter if the cheater has hundreds of numbers available. They will run out of them eventually.
I was like 21 rating points away from becoming CM. Felt bad after seeing this, hope these guys are eliminated and ratings get rolled back
Programmers_Hive If he will cheating like this, he will be Grandmaster in the upcoming 3 Contest for sure -.-
Programmers_Hive should be banned
Adding a feature to manually report these people will help
codeforces Saurabh_Lucifer_pathak has been using Chat GPT for A , B , C and D question of Div 2 Contest since many contest and has not been banned yet
I think there are still some kinds of problems difficult for AI.
Can someone solve these two purely by AI (and not giving them countertests)?
Sounds like a challenge
100488K — Two Pirates 313054947
When we prepare local contests, checking that a problem cannot be solved by AI is one of the steps. We usually try different models and see how we can modify the story or the idea so that it is at least not trivially solved by an LLM. Of course, if a person can understand the algorithmic problem behind the statement and formulate it as such, there is not much we can do, but in practice it already removes 90% of cheaters.
Chess community faces similar problems with powerful chess engines, and some of the implemented solutions include anticheating software, mandatory cameras / screen recording, proctoring etc. Some lessons learned there:
This can eliminate a majority of cheaters, simply due to more elaborate measures required to cheat
Technically skilled cheaters (which is most of CP community) will have the upper hand
A determined cheater will find a way
Most of these solutions are not scalable and only applicable to high-profile events with limited number of participants (maybe Div. 1 at best)
Effectiveness of added measures grows logarithmically, while the number of false positives and discomfort for honest participant grows at least linearly
Don't know what to make of it, many domains are struggling with AI cheating nowadays.
phone number verification might still not be very efficient due to cheaters using multiple phone numbers, however not every cheater would be able to manage to do so, decreasing amount of cheaters drastically I guess
like what? there are no good solutions
I thought a lot and found several solutions, for example first is the adding a test for growing up in site. On 1 question 15 second, questions will be simple and easy for someone who growed to some color.
Yes there are. Make the plagiarism detector actually do smth (and provide an appeal form), implement statistical checks. There 2 are pretty easy.
and i should not say they are indian.. ohh wait but they are indian.....
One way would be the TopCoder style arena. By disallowing copy-pasting into the arena, we at least narrow the cheat vector down to "type this, one character at a time"
Won't do much. If anything, will provide an incentive for obvious cheaters to obfuscate their solution
Have codeforces stopped doing manual checks?
Might sound stupid but maybe codeforces should take this to Sam Altman(ChatGPT), Google(Gemini) and other AI platforms and maybe ask them to stop the models from responding to CP coding problems during contest hours. I KNOW IT SOUNDS UNREASONABLE AND IMPOSSIBLE, but i see no other way :(
BTW great book soullless, i am on the 6th chapter rn and you did address some of my problems, thanks :)
DeepSeek is open source, so not all AIs are under the control of Some Corporation, Inc. Many platforms offer hosted DeepSeek service.
I think AI can help , problem setter or anyone who wants to contribute can generate solutions from ai and then , when the plagiarism catch process (I don't know what does it actually called) works then all the solutions of participants must be compared with ai solutions so chances of solution getting matched can be increase and more cheaters might get caught
Personally, I'll say it painfully but I just don't see how the platform survives the next couple of years. There's just no actual way to prevent cheating, only workarounds that could certainly minimize it but not eliminate it.
Minimization to a certain degree could be enough, but contrary to chess, I don't see how we will be able to make cheating only marginal. This community is already entirely composed of technically skilled people which are all aware of the increasing availability and advancement of such tools. Moreover, programming contests are not a laid back activity which you could do spontaneously at whim through your phone as you pass the time but rather an intensive, relatively rare occurrence which thus holds a lot at risk for people who care about their rating (which is the vast majority I suppose, hence we participate in the first place). Let's not also forget that at least currently impressive Codeforces profiles serve as a resume asset and are valuable in the software job market. Thus, contests being more of an "exam" rather than a "game" unfortunately just "invites" cheating in my perspective.
The only way in which I see cheating being reduced to a relatively marginal phenomena which does not affect the well being of the platform too much, like how it is in chess platforms, is if cheating would feel pointless to do. I only see it happening if just like chess competitive programming will be reduced to a mere eSport without much ties to the real world. It essentially has to be turned into a "game" rather than a weekly exam (a very fun and exciting exam that is!). Is it possible? I don't know. I just know that I'm sad.
Let's not also forget that at least currently impressive Codeforces profiles serve as a resume asset and are valuable in the software job market.
This! Most of the cheaters would not spend 2+ hours on a contest, if not for the huge incentive of being shortlisted by firms. Measures can be put in place by the Codeforces, but Codeforces will be forever playing catch-up with the cheaters who try to game the system.
We can only wait till the hirers drop this fad with online competitive programming ratings and rankings.
Ironically, the hirers would drop the fad only when Codeforces rating becomes fake and useless, that means, Codeforces is completely conquered by cheaters.
and then hopefully it can go back to being as a sport, similar to chess. that would be nice
Chess is different, it is a lot more easier to detect AI on chess than in CP.
All in all, there are theoretically infinite different solutions to a problem, but finite states in chess.
How can you disprove someone who actually enjoys writing variable names like aReallyLongCamelCaseVariable with // overly verbose comments?
In my opinion, Codeforces should have like an AI Detection team that would try and submit AI code that was accepted and uses Stanford's MOSS algorithm (which CF already have) to detect them, I think an application for this should have the req of like Expert or CM
*Note a lot of you probably would check my profile and I can clearly state that I did not use AI, some contest I have shitty rank because I'm just lazy and I'm also a TOI participant.
Guys we need to save this platform from cheaters . Is it possible , yes it is 100% possible . We need to take some harsh steps . Those who are true problem solvers they will support these steps .
Have you ever wondered what could be the soul motivation of cheaters of doing cheating on Codeforces . Obviously to increase ratings and ranks so that they can show this on there resume . But there roots are weak they will eventually shatter in real interview scenarios .
Now the question comes what can be done :
If you carefully observe these cheaters never solved large number of problems . Mostly cheaters create new profiles and just start cheating . This is a common trait if you carefully observe . Also , even if a cheater solves 200 — 300 problems in order to portray it as valid account and after that they starts cheating . Suppose a person who is solving 1400-1500 rated problems on daily basis practice but all of sudden in contest they start solving 1700-1800-1900 or above problems without enough practice they can be easily tracked down obviously they are not prodigies . Even prodigies need to practice for some time in order to be good in a certain difficulty level problem .
So what can be done is set limit while participation in a contest . In order to participate in a contest that person must have solved at least 300-400 problems on Codeforces . This will highly demotivate cheaters as they don't enjoy problem solving .
Secondly , if a person who has never solved or practice enough a higher difficulty level problems ( let's say 1700-1800-1900 or more ) and all of sudden in contest they start solving keep those accounts under radar ( if they keep on doing for next 3-6 rounds ) . If there submitted code in contest matches suspiciously with other submissions on large scale . Simply remove those accounts with immediate effect .
These steps not only demotivate cheaters but also decrease the occurrence of cheating on online contest up to a great extent .
Proof : Go to clist standings and check the standings of last Codeforces round 1014 of your country you will see cheaters who has solved very less number of problems but still managed to get high ranks . Even they have not solved higher difficulty level problem . Just we need to look out for suspicious users .
If to have any form of cheating minimization, to me that seems like the correct approach
I agree, but I myself don't solve problems on codeforces but I do on other local platforms that benefit me more, eg. my country's olympiad practice.
Can i ask where you practice?
programming.in.th otog.in.th cses Usaco
However, not everyone usually use codeforces. Some of my classmates hardly practice in codeforces but other websites.
1) Soon one could say: "I could beat both the humans and AI" :-)
2) On contrary to chess, none of cheaters makes you solve less than you can
P.S. Though it is, of course, a pity to receive less rating points that would be given otherwise
The authentication methods should be modified so that if someone logs in and gets banned from Codeforces, they cannot create a new account.
Bruh that is theoretically impossible. They register through Gmail account and you can create new Gmail account if you want.
Cant there be a unique identifier like mac address ?
and phone number is not so bad..tons of social media applications use phone numbers idk why people are not so reluctant there..
Suggestion: Disable copy/paste of problem during contest and adding hidden text to the problem.
Also can we use Abstract syntax tree to reduce cheating?
1.Users generate AST locally using an official Codeforces-provided script,since it is computationally intensive running for all users on server
2.Users submit both their code and AST file.
3.Server compares ASTs instead of raw code. Anyways plag checkers do their job plus adding this ,like a hybrid. and may be add some hash thing to ensure the ast is validly generated.
Cheaters will take the extra step of prompting the screenshot of the problem to get the textual representation of it (or just submit the image with the prompt to direct it to solve it as is)
AI is relatively decent at recognizing text.
Most existing plag checkers already run on ASTs. I would also not blindly trust any user input when trying to detect cheaters.
A controversial solution is to make AI legal to use and make contests harder:
Programming has changed, so it's time for CP to change. And CP has always been a search problem. When it becomes easier to search in the CP domain, let's make the domain bigger.
I don't know why so many people dislike the idea of making weak tests on purpose. I just love the fact that there's no longer proof-by-AC solutions. People really need to think carefully about their approaches. The ideal world doesn't exist where everything is perfectly designed for you. In real life, there's no one giving you all the needed test cases and you have to generate / test it yourself.
hiding tests is actually genius
Prized official CPs are held in person, so it is a sport, and cheating is not a problem there.
For online contests, cheating by paying is the best kind of cheating because it does not scale to thousands of people, and at least with current AI, for getting slightly better performance, you have to pay a lot of money (checkout ARC-AGI).
With current models, skilled programmers do significantly better with free AIs compared to less skilled programmers with huge models (checkout what high rating people can do with them).
So, I think by making the domain bigger, we will make the human part of the competition the bottleneck again.
Just look at Jerry_07, a guy had 3 contests before, getting newbie-like results. And for the last contest, he scored top-11, solving questions unbelievably quickly, and using different languages. This is just ridiculous. Some people grind and learn to get an expert and above while he is just using genai for a single round to achieve nearly the same results.
I think one thing that might help reduce cheating, is that like we have problem testers for contests, we can maintain AI testers. They would try to have the AI models solve the problem. This can help make cheating harder.
What about Disabling cut,copy and paste in the editor ?
Proctoring services might work (a kind of screen time measuring), some Cyber Security contests use that already to prevent communicating between contestants.
I don't understand why Mike doesn't ban these accounts. Sometimes some of them have their submissions skipped and lose rating but the account isn't banned, what's the point of this?
.
Summary: Trust cheaters to click a button saying "I am using AI"