Блог пользователя chenhongrui

Автор chenhongrui, история, 5 месяцев назад, По-английски

In the recently concluded CF Div. 2 competition, 7 out of the top 10 contestants have been identified as using AI to cheat. Even in my opinion, giperus's solution for problem E2, completed in just 15 minutes, doesn't seem to follow a human-like coding style.

These individuals were only caught because their rankings were exceptionally high. I wonder how many more contestants among the remaining participants also used AI.

Of course, those who were caught cheating simply fed the problem statements directly into AI and submitted the generated code without modification. If any of them had been smarter—by only reading the AI-generated approach and then writing the code themselves based on that idea—they might never have been detected.

In this era of explosive AI development, does the integrity of ratings in online competitions now rely entirely on contestants' honesty? Are we truly powerless to prevent cheating participants from dominating various online competitions?

Is there really no effective method to curb AI cheating at present? Will the ratings on platforms like CF, AtCoder, and Luogu ultimately become nothing more than "just for fun"?

PS:This is written in Chinese and translated by AI. If you are a Chinese contestant, feeding this text to Deepseek for translation can yield a meaning similar to the original.

  • Проголосовать: нравится
  • +160
  • Проголосовать: не нравится

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

Auto comment: topic has been updated by chenhongrui (previous revision, new revision, compare).

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится +29 Проголосовать: не нравится

Maybe afew verifications could make the rating 90-95% accurate ?

  • »
    »
    5 месяцев назад, скрыть # ^ |
     
    Проголосовать: нравится +81 Проголосовать: не нравится

    But,how?

    Moreover, the biggest issue is that many contestants feel no shame about cheating with AI. No matter what methods are used to strengthen detection, there are always ways to bypass them. As the Chinese saying goes, "As virtue rises one foot, vice rises ten."

    • »
      »
      »
      5 месяцев назад, скрыть # ^ |
      Rev. 2  
      Проголосовать: нравится 0 Проголосовать: не нравится

      Why cf doesn't bring phone number verification ? ... At this point it is the ultimate solution !!! It's not like someone giving contest here do not have phone (They could use there parent's if so) !!!

      • »
        »
        »
        »
        5 месяцев назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится

        Do you think cheaters cannot borrow phone numbers from their relatives? This would just cause inconvenience for the legitimate participants while it will just be another minor hurdle for the cheaters. Also, a lot of people will just withdraw from the platform because they might not be comfortable in giving out their phone number. What's next? Ask for their govt. approved ID?

        • »
          »
          »
          »
          »
          5 месяцев назад, скрыть # ^ |
           
          Проголосовать: нравится 0 Проголосовать: не нравится

          What if we delegate, our verification to some 3rd party verified source, I don't know much, as per I saw, LinkedIn has ways to verify user profile, through collage id or some document, we can use that, if possible

        • »
          »
          »
          »
          »
          5 месяцев назад, скрыть # ^ |
           
          Проголосовать: нравится 0 Проголосовать: не нравится

          No they can't ... How many will they borrow ?? Also everytime they login they have to login through OTP ... and codeforces could do something that automatically signs them off few days or so ... so that they login again with OTP ... Who said No one will be comfortable with giving there number ?? You can give phone no. to social media sites and not here, which also would not be shown here to everyone

        • »
          »
          »
          »
          »
          5 месяцев назад, скрыть # ^ |
           
          Проголосовать: нравится 0 Проголосовать: не нравится

          There will be a lot more hurdle than you could imagine ... No sudden BOT accounts ... Only 2-3 times cheating and getting banned then its over

    • »
      »
      »
      5 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится +18 Проголосовать: не нравится

      This will also mark the end of creating BOT accounts ... Also how many phone numbers you think cheaters would afford if banned 2-3 ??? Surely not more than that

    • »
      »
      »
      5 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится +3 Проголосовать: не нравится

      Well, what about submitting screen recording, like in India, during ICPC Regional round which held online, they provided some python3 scripts and OBS studio instructions to proctore, by this they eliminate some cheaters. Cheating in this system need some good setup and I doubt cheater will go that length.

      Mobile verification idea is also good enough.

    • »
      »
      »
      5 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

      Is there simply no way to filter clanker code out?

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится -192 Проголосовать: не нравится

I understand your concern, hear me out

  • solved e2 directly(as only constraints were tighter for hard)

  • it is only 15 lines of code

But the problem of cheating is real, given im being accused too by other cheaters which is funny

I appreciate you raising your voice and hope we get to something

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится -124 Проголосовать: не нравится

In this era of explosive AI development, does the integrity of ratings in online competitions now rely entirely on contestants' honesty? Are we truly powerless to prevent cheating participants from dominating various online competitions?

Regarding this concern of yours, it doesn't really matter.

Ratings alone never mattered, cheaters will be filtered out sooner or later(for example during an onsite or an interview or just during a conversation)

They might get few social points flexing it on linkedin or among friends, but it won't get them anywhere.

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится +14 Проголосовать: не нравится

In my college there are two experts (there are more) who cheat. They made ICPC team together and even got selected. One got a skipped contest .Unfortunately it was unrated and he still shamelessly posted about trying for CM. Other one's code makes it look like he is not even cheating but he wrote a code in codechef that was clearly AI (not caught) --> From a ridiculous Python code to C++ code in 5 min. How do they not get caught even after repeatedly cheating in consecutive contests.

  • »
    »
    5 месяцев назад, скрыть # ^ |
     
    Проголосовать: нравится +4 Проголосовать: не нравится

    You're right. Among those who cheat, there are indeed many highly skilled contestants. However, Codeforces' anti-cheating mechanisms are extremely limited, making it difficult to catch every single contestant who cheats.

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

Except physical competitions, no. It's quite impossible to prevent cheating if you just, ask the AI for ideas, then code it.

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

As stated previously, the standard methods are:

  • Flagging participants who have unexpectedly good results, and then further analysis
  • Trust systems, which is based on the number of people/communities that can "vouch" for a person.

For the last point, I wonder if having something akin to a competitive programming "Trust voucher" per person could make sense (like, where each community that trusts an individual "stamps" that trust voucher $$$\rightarrow$$$ cryptographically signs it... $$$\rightarrow$$$ some blockchain nonsense). In any case, while I think the idea is cool, it would just be exploited for personal gain in one way or another by cheaters... (like creating false trusting communities, etc)

  • »
    »
    5 месяцев назад, скрыть # ^ |
     
    Проголосовать: нравится -17 Проголосовать: не нравится

    how's it valid to just flag someone who had an unexpectedly good result?

    • »
      »
      »
      5 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится +6 Проголосовать: не нравится

      Flagging isn't banning: it's just a tool that administrators can use to not have to sift through thousands of users and just to focus on suspects.

      And of course, depending on the conditions, flagging criteria should change; nevertheless, it's the standard method used to deal with cheating in many online "reasoning" games, such as chess.

      And of course, chess and competitive programming are very different both in what they are fundamentally and how cheating can be evaluated (it's very practical in chess to look at the difficulty of a move and conclude whether a person at level X could have made it or not + with what probability, and after that see how many unreasonable moves were made and whatnot). Here, the closest criteria we have is the problem difficulty. Of course, perhaps a person is not that good at adhoc but really really good at geometry, so they can solve a geometry 2500 problem ezpz but not a 1900 adhoc (because of which they'd get an unexpected result), but for that we can use statistical methods to evaluate how likely a person is to solve X very hard problems relative to their difficulty.

      You can see a trivial example of this on clist.by, where (with an account) you can see the probability you solve a certain problem if you have a registered problem.

    • »
      »
      »
      5 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

      Flagging simply points someone in the direction of an unexpectedly good result.

      Sure, every dog has it's day, but if you have a history of only poor contest performances with some of those contest performances failing to complete a single task; and then you suddenly bang out a solution to every task in a contest? That's going to be suspicious.

»
5 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится +80 Проголосовать: не нравится

Unfortunately, the it is true that AI is destroying the online CP.

A live example, my rating for leetcode is around 2500-2600 and still keep dropping, however, my rating is once higher than 3000 in Dec 2024, and I never drop below 2700 from 2022-2024.

Is it because I am weaker? Obviously not, it is only because a lot of people cheat to get high rating, and my rating is eaten by them.

For atcoder, it is same, like yesterday's atcoder contest, nearly 1400 people solved a 550 rating atcoder problem, which is beyond imagination before.

In my round 1061, nearly 400+ users solved F1, however, F1 is very hard according to my testers, none of my red testers solved F1, they said it should be at least 2600 rating, but it is actually 2200. F1 can be solved by latest chatGPT in several attempts.

Currently my rating is 2184, but it is only because I seldom participate rated div1, if I participate codeforces and rate it every week, I am sure I will soon become expert.

So, YES, your rating will 100 percent drop if you don't use AI and continue participating, you may have a few good rounds and rating even increase a little, but if you have a bad round you will face great punishment, a very big drop. The expectation value of your rating change is negative.

But, I believe 80 percent of the contestants are as integrity as me, and will never use AI. Using AI in cp is like using motorcycle in Marathon race, totally meaningless, if you really care about your rating, the best way is just quit cp and find something more interesting in your life.

Or just like me, only participate for fun. Current I am yellow, and I will probably become purple or even blue with the development of AI and number of cheaters increase, but I really don't give a shit now.

  • »
    »
    5 месяцев назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    The analogy of using motorcycle in marathon really get me a good laugh. Anyway, I did spam contest a bunch and my rating compared vs the start of the year... the result is very humbling (I'm in the other side of spectrum, which is spamming contest if you're curious).

    There's a fine line between getting weaker or being out run by other competitors, but I choose not to stop joining contest (at least until I reach blue) and see how it goes.

  • »
    »
    5 месяцев назад, скрыть # ^ |
     
    Проголосовать: нравится +11 Проголосовать: не нравится

    F1 is no near 2600 difficulty, the first greedy that comes to mind works, it's 10 lines of code so easy to verify as well.

    • »
      »
      »
      5 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

      Wouldn't a participant's past contributions make it pretty clear whether they're cheating or if they are in fact, as good as their rating reflects?

      (this question is more in-line with the general problem here)

  • »
    »
    5 месяцев назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    I agree with the last paragraph. We should just get rid of ratings and participate for the fun of it. Maybe this will get rid of most of the cheaters as a byproduct.

    • »
      »
      »
      5 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится +14 Проголосовать: не нравится

      People cheat to improve their odds in this brutal job market. Getting rid of ratings wouldn't be enough, we'd need to get rid of ranking lists for each contest. If ranking lists persist, there is still an incentive to cheat since cheaters can put strong contest finishes like top 1% or top 5% on their resume. Obviously that's not feasible. A better solution is to attach some form of identification to people's accounts. For example, on my account you can see my name, the university I attended, and my university email. If someone like me decides to cheat, at least they'd have to stake their reputation.

      • »
        »
        »
        »
        5 месяцев назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится

        I see where you are coming from, but I think attaching identification to accounts is a big step to take. If you want identification, you need some ways to verify. How should we do it? Is CodeForces the right place to do it? It might raise more safety or privacy concern. I am not an expert in laws, but I believe many countries and areas have related laws & regulations about this.

        I am personally fine with using my legal name and school, but it may not be the case for everyone, regardless if they want to cheat or not.

        • »
          »
          »
          »
          »
          5 месяцев назад, скрыть # ^ |
           
          Проголосовать: нравится +3 Проголосовать: не нравится

          Thanks for your input. There are decent ways to verify people's identity out there. Services already exist for this, Codeforces would just need to employ them. I agree there are safety and privacy concerns, I addressed some of them in my most recent blog post if you want to check it out.

          I basically proposes a two tiered system, one with verified and unverified accounts that compete in the same contests. Verified accounts will have a "Verified Rating:" field on their profile, while unverified accounts will have an "Unverified Rating:" field on their profile. This gives job seekers an incentive to verify their accounts, because recruiters will not like seeing "Unverified Rating:" if they visit a candidates account. It also spares people who are uncomfortable with verifying their identity and children from having to do it.

          Basically, the only people who will be heavily incentivized to verify are those who are trying to use their Codeforces rating to help them land a job. I think that's fair.

  • »
    »
    5 месяцев назад, скрыть # ^ |
    Rev. 2  
    Проголосовать: нравится +10 Проголосовать: не нравится

    leetcode really is a cesspool now. they don't even ban obvious cheaters who put things like x = 1; x = x + x; in their code to look 'more real' well to be fair if you don't care about your rank the contests are still nice

  • »
    »
    5 месяцев назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    I don't think, that AtCoder problem was difficult: I've just solved it in a couple of minutes.

    The Codeforces problem you mentioned also doesn't look hard for me (easy version, certainly).

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

You have to do proctored competitions like chess does. Otherwise it won't matter. I was looking at the last div2 contest and A through C could be solved under couple minutes only using publicly available LLMs which means that to compete with them you would have to be purple at the very least and hope that they don't have some version of LLM that can solve problem D. I don't think the contest ratings mean anything anymore for people under GM ratings which is tragic.

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

yo creo que con el tiempo se ira reduciendo, porque no tiene sentido que seas gm en codeforces gracias a la IA y en un icpc o otra competencia presencial des verguenza.

»
5 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

There's something that can be done to ensure that a given problem cannot be solved by a given LLM. If you feed the problem and a decent prompt to a model, ensuring that the model has a proper token generation configuration, then if the model is unable to solve it in X attempts, you can be reasonably sure that the problem cannot be solved with the model you used. This also covers cases where a user asks the model for ideas, as the model is likely to provide inadequate suggestions. This would happen when the model wasn't trained with the specific knowledge required to solve the problem. The main issue is that OpenAI hired a group of elite competitive programmers, and as a result, many models contain a significant number of problem-solving ideas encoded within them. They thought that this would make the models elite coders, but it didn't. I have created an open-source version of AlphaCode, which problem setters can use if they desire to apply the method I explained earlier. The tool can be found here.

PD: I have created a blog explaining how to use LLMs to detect AI plagiarim here

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Some form of unique identification needs to be tied to all accounts

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

Most feasible solutions will be akin to shifting the goal post. It will add unwarranted inconvenience for legitimate participants while subjecting cheaters to just another minor hurdle.

If you inspect the motive behind cheating then it's always something like getting a job, earning social credits, getting into some exclusive community, college club, camps, etc. And, how does cheating, in what's expected to be an online platform to practice, help them with their goal? It's because organizations use it as a filtering criteria. Why will the candidates use it to practice and up skill, to achieve their goals when they can just cheat and achieve it anyway? LLMs only made cheating more convenient, but it's fueled by these organizations being lazy in their recruitment process. I think this quote applies here:

When a measure becomes a target, it ceases to be a good measure.

The ratings and rankings should be in a position such that they hold little to no significance to anyone (recruiters, LinkedIn crowd, etc) except those that are participating for the competition's sake. Interestingly, rampant cheating is getting us there, where it's become difficult to trust anyone's ratings, especially if they post on LinkedIn or some other social platform about it.

All this does not apply to onsite contests though, where proctoring is trivial. So, ICPC rankings can still hold prestige.

  • »
    »
    5 месяцев назад, скрыть # ^ |
    Rev. 3  
    Проголосовать: нравится +15 Проголосовать: не нравится

    I posted Div 2 Round 1067 on my LinkedIn, because it was my best performance ever so far, LOL. Codeforces has historically been a great opportunity for people like me to prove our intelligence and to put something impressive on our resumes. Especially since I kind of missed out on competitive math/programming during my childhood and only recently got into it, now that I've already graduated from university. It's a shame that cheaters are ruining this opportunity for people like me.

    And don't get me wrong, I thoroughly enjoy competitive programming. I just also like that it's a way for me to differentiate myself.

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Maybe if Codeforces had an official app, contests could run in a full-screen locked mode where users can't switch to anything else unless they manually exit. And once they exit, they wouldn't be allowed to re-enter the contest.

P.S. I just realized people could still ask an AI on another device, but at least it would slow them down.

  • »
    »
    5 месяцев назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Yeah something like that could work. I also proposed some ideas in my recent blog post. I also like the idea of stricter and more widespread surveillance/monitoring of accounts. I think we as people can get a pretty good sense of when someone performs a little too good considering their past performance. There needs to be a higher bar for creating new accounts. It shouldn't be as easy as it currently is. New accounts need to immediately be placed on a high priority watchlist. Since some people might try to be smart and grow their rating slowly and steadily using AI, there should be checkpoints on the rating ladder. If you hit a checkpoint, you must schedule a video interview and prove your ability.

    • »
      »
      »
      5 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

      The idea is really good. But scheduling a video interview is I think overkill. Maybe if you reach a checkpoint u have to give a video of the contest to verify it. But u will need a lot of people to watch these videos.

      • »
        »
        »
        »
        5 месяцев назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится

        Ooh that's a smart idea. There is pretty good eye monitoring AI technology out there nowadays, so if a participant is forced to give a webcam AND screen recording of their contest, we should be able to get a pretty good idea of their honesty. Since people can have one off bad contests, especially under the pressure of surveillance, I think they should definitely be given multiple chances to prove themself before getting disciplined, probably 3-5 tries per checkpoint?

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I am afraid all the effort I put into CP goes to waste

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I feel like this affects low rated contestants (like myself) more because these people might not typically make it very high in contests but could overall mess up the ratings and as the issue grows and pose a threat to trying to slowly climb in rating if many high spots in div2 and div3 contests are filled with contestants using AI.