soullless's blog

By soullless, history, 18 months ago, translation, In English

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.

  • Vote: I like it
  • +520
  • Vote: I do not like it

| Write comment?
»
18 months ago, hide # |
 
Vote: I like it +187 Vote: I do not like it

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.

»
18 months ago, hide # |
 
Vote: I like it +34 Vote: I do not like it

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.

»
18 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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.

»
18 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like 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.

»
18 months ago, hide # |
 
Vote: I like it +142 Vote: I do not like it

make all codeforces rounds in person, so you have to go to ITMO university and get invigilated by mike personally to get rating

»
18 months ago, hide # |
 
Vote: I like it +4 Vote: I do not like it

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.

»
18 months ago, hide # |
 
Vote: I like it +58 Vote: I do not like it

Cheating is an existential threat to this platform.

If care is not taken, it might spell the end of this platform.

»
18 months ago, hide # |
 
Vote: I like it +50 Vote: I do not like it

They should implement phone number verification. Does not matter if the cheater has hundreds of numbers available. They will run out of them eventually.

»
18 months ago, hide # |
 
Vote: I like it +11 Vote: I do not like it

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

»
18 months ago, hide # |
 
Vote: I like it +34 Vote: I do not like it

Programmers_Hive If he will cheating like this, he will be Grandmaster in the upcoming 3 Contest for sure -.-

»
18 months ago, hide # |
 
Vote: I like it +9 Vote: I do not like it

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

»
18 months ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

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)?

»
18 months ago, hide # |
 
Vote: I like it +46 Vote: I do not like it

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.

»
18 months ago, hide # |
 
Vote: I like it +20 Vote: I do not like it

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

»
18 months ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

In my opinion, the current state of affairs calls for action

like what? there are no good solutions

  • »
    »
    18 months ago, hide # ^ |
     
    Vote: I like it -12 Vote: I do not like it

    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.

  • »
    »
    18 months ago, hide # ^ |
     
    Vote: I like it +12 Vote: I do not like it

    Yes there are. Make the plagiarism detector actually do smth (and provide an appeal form), implement statistical checks. There 2 are pretty easy.

»
18 months ago, hide # |
 
Vote: I like it +7 Vote: I do not like it

and i should not say they are indian.. ohh wait but they are indian.....

»
18 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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"

  • »
    »
    18 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Won't do much. If anything, will provide an incentive for obvious cheaters to obfuscate their solution

»
18 months ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

Have codeforces stopped doing manual checks?

»
18 months ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

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 :)

  • »
    »
    18 months ago, hide # ^ |
     
    Vote: I like it +24 Vote: I do not like it

    DeepSeek is open source, so not all AIs are under the control of Some Corporation, Inc. Many platforms offer hosted DeepSeek service.

»
18 months ago, hide # |
 
Vote: I like it +6 Vote: I do not like it

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

»
18 months ago, hide # |
Rev. 3  
Vote: I like it +7 Vote: I do not like it

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.

  • »
    »
    18 months ago, hide # ^ |
    Rev. 2  
    Vote: I like it 0 Vote: I do not like it

    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.

    • »
      »
      »
      18 months ago, hide # ^ |
      Rev. 2  
      Vote: I like it -6 Vote: I do not like it

      Ironically, the hirers would drop the fad only when Codeforces rating becomes fake and useless, that means, Codeforces is completely conquered by cheaters.

      • »
        »
        »
        »
        17 months ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        and then hopefully it can go back to being as a sport, similar to chess. that would be nice

  • »
    »
    18 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    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?

»
18 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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.

»
18 months ago, hide # |
Rev. 2  
Vote: I like it +12 Vote: I do not like it

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 .

»
18 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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

»
18 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

The authentication methods should be modified so that if someone logs in and gets banned from Codeforces, they cannot create a new account.

  • »
    »
    18 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Bruh that is theoretically impossible. They register through Gmail account and you can create new Gmail account if you want.

»
18 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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..

»
18 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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?

Spoiler
  • »
    »
    18 months ago, hide # ^ |
    Rev. 2  
    Vote: I like it 0 Vote: I do not like it

    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)

  • »
    »
    18 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it
    1. AI is relatively decent at recognizing text.

    2. Most existing plag checkers already run on ASTs. I would also not blindly trust any user input when trying to detect cheaters.

»
18 months ago, hide # |
 
Vote: I like it -32 Vote: I do not like it

A controversial solution is to make AI legal to use and make contests harder:

  • As we see with today's models, the further you go from the distribution, the more the performance falls. They do not perform well in Div.1 contests, so harder (to be specific, not repetitive problems) will make the contests a real thinking competition.
  • Programming has always been and always will be domain translation. No matter whether a human, a compiler, or an AI is doing it, it's creating a bridge between specification and execution. If the best way to translate algorithmic problems to machine-executable code is to use AI, so let it be!
  • AI is making easy problems obsolete and is making designing harder problems and better test sets easier as well. So it makes sense to shift towards challenging tasks.
  • Now that the coding part is not challenging enough, we can do things like making test results invisible during the contest. It means people need to think of corner cases, write generators, and come up with ideas to validate tests as well, which at least currently, AI is not good at this things at all, that's why it cannot write a good generator itself for IOI problems and have to submit thousands of different codes.

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.

  • »
    »
    18 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    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.

  • »
    »
    18 months ago, hide # ^ |
     
    Vote: I like it +21 Vote: I do not like it

    hiding tests is actually genius

  • »
    »
    18 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it
    1. I disagree with your second statement. You are right if we are talking about "programming" and mean "software development", but competitive programming is not purely coding, it's also a sport. And for sport the idea is to have a competition based on some skill that you are naturally talented in or can at least develop through hard work. If we allow usage of AI it'll just make a competition of who can afford larger gpu cluster/more expensive model, not cool.
    2. I agree with your conclusion. Currently it's really hard to create new and high quality problems without expanding the domain. It would be nice to see introduction of parallelism or maybe even gpu programming in the contests.
    • »
      »
      »
      18 months ago, hide # ^ |
       
      Vote: I like it -7 Vote: I do not like it

      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.

»
18 months ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

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.

»
18 months ago, hide # |
 
Vote: I like it -10 Vote: I do not like it

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.

»
18 months ago, hide # |
 
Vote: I like it +8 Vote: I do not like it

What about Disabling cut,copy and paste in the editor ?

»
17 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Proctoring services might work (a kind of screen time measuring), some Cyber Security contests use that already to prevent communicating between contestants.

»
17 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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?

»
17 months ago, hide # |
Rev. 4  
Vote: I like it -16 Vote: I do not like it

.