_ahat's blog

By _ahat, history, 9 months ago, In English

Codeforces used to be the one place I felt truly challenged. Now, it feels rigged. Does anyone else remember Codeforces during last year's summer? I do. I remember waking up early to do the frequent and high-quality contests; I remember getting on calls with friends and discussing solutions post-contest and laughing at WA attempts; I also remember times where when I couldn't think of a solution and I would bang my head on the wall and draw trillions of random dots, parenthesis, letters and numbers on paper — all in the name of hoping that I would stumble upon an observation. I grew, the community grew, and we all thrived.

We've all been there, fallen in love with competitive programming and problem-solving. That feeling of getting AC after debugging for an hour and then finding out it was a random global variable is ... indescribable. Codeforces used to be a haven for us problem-solvers. It used to be a place where we could be ourselves. Ratings weren't everything for us: we cared more about growth and the fun of the game rather than our results.

However, we're all familiar with the current competitive programming scene: racism, cheaters, problem leaking, telegram groups for cheating, etc. It's safe to say that if these issues continue, this community — one that has helped many people discover themselves and find joy in problem-solving — will be the losers.

These issues can all be tied to rating. Why do people cheat with AI? rating. Why do people leak solutions? rating. Why are people on this platform racist? rating. Rating is a construct that this community has created as a means to rank people's skill and performance in contests. The core issue lies in that people view rating and comparisons with others as a means to track their own progress. I think that this system is wrong. We cannot, as a community, keep using rating as a way to track our improvement, because cheaters will infiltrate our contest leaderboards and make the metric entirely useless.

It is undeniable that the introduction of publicly available LLM-reasoning models such as GPT 4o has greatly increased the number of cheaters on this website, and while there are means to detect them, these detection systems are extremely easy to bypass by just rewriting the code yourself. Sure, the people at the top can rest safely for now while the average competitive programmer loses interest in growth or self-improvement due to the large amount of cheaters infesting lower ranks. It’s insulting to see people take shortcuts using AI and then claim mastery over problems they couldn’t dream of solving alone. However, just as chess engines became better than humans at chess, eventually, the top of the leaderboards in Div 1s will be filled with non-human entities. At this point, a public rating system would be utterly pointless.

Sure, we have in-person global competitions such as ICPC and such. But, we're some of the smartest people in the entire damn internet — how are we going to back down and lose our passion for problem-solving to these stupid cheaters that can't muster up a single original thought? I strongly believe that we as a community are capable of addressing this hurdle and creating a better platform.

I have some suggestions for systems we could adopt solve the issues with rating:

  1. Online contests work like this: The authors create problems, a group of trusted testers solves the problems and assigns them "problem ratings". Then, instead of having a contest performance based on how fast other people solve problems, we have a deterministic calculation of contest perf that only involves the problems you solved and how much time it took you to solve the problems given their assigned rating. This method should not only prevent rating inflation over time, but also re-allow rating to become a metric people can use to track improvement.

  2. Leaderboards could still exist, where people strive to be top 10 or ranked number 1, but for those, you need to be verified. (This is a very controversial thing, but I believe verification would allow for a proper way to prevent people from being able to bypass bans).

  3. We should have a way to report cheaters instead of having to make blog posts calling them out.

Obviously, I'm not that good at competitive programming. No matter how much I enjoy solving problems, I don't have the decades of experience some of the LGMs on this platforms have. I want to hear from others about what they think should happen so we can make codeforces and improvement feel real again.

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

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

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

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

There is a way to report cheaters instead of making blog posts: https://mirror.codeforces.com/blog/entry/144179.

Also, a rated system that only tracks personal improvement doesn't really make sense. Codeforces is a contest platform after all, not just a training dojo.

Overall, I think the whole AI cheaters scenario has been blown way out of proportion by the constant (and unnecessary) stream of blog posts calling out such cheaters. Someone who doesn't read CF blogs at all would probably only notice a slight decline in contest quality (and frequency) at most.

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

    Unfortunately, it isn't a slight decline. Last year's June had around 12 contests. This year? Only 7, with no Div. 1. I would categorize this as a sharp decline. Moreover, even if someone didn't read CF blogs, they would still feel the impact of cheaters during rounds as well. For example, in CF round 1035, according to the cheater database, 22 out of the top 200 people are cheaters. This large amount of cheaters flooding the front of the leaderboards would not only affect rating changes, but also affect strategy based on the number of solves.

    I believe the only way to combat cheating effectively is to take action. Currently, cheating has minimal consequences, with most cheaters, according to the cheater database, still unbanned. Furthermore, applying more aggressive bans, such as IP bans (although bypassable with a VPN), would be helpful.

    As a side note, there has been a significant reduction of "so and so is a cheater" blogs recently as compared to when o3 was released, partly due to a centralized place to report cheaters with the cheater database.

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

    The number if cheaters is definitely out of hand

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

I like the idea, however I do believe it's difficult for people to assign a specific problem rating for some problem without having more people try to solve the problem (e.g. the difference between a 1700 and 1800 can't really be determined if we don't take participant solve count).

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

yeah bro honestly people are too smart now and ai made it even worse they’ll always find some trick to cheat but still if we make cheating harder and more risky like locking screen tracking behavior maybe at least some of them will stop full clean system is hard but we can at least make it better than now

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

No

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

You'r right, i see in all contests so much newbies, unrated people, who do all 7 or 6 tasks

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

I think no rating system would be a solution for this; a leaderboard can still be there to see the current progress

»
9 months ago, hide # |
Rev. 2  
Vote: I like it -13 Vote: I do not like it

llm won't be good with cp not even with RL as it happended with chess or go , Reason: action a agent can take with one input statement are infinite for a single state and for whatever set actions it uses to create a single action it will get a single respone from env and randomness is infinte . Nor chain of thought will be able to solve problems which are not in its training data or internet.I might be wrong or missing something , feel free to correct me.So simple solution is to just create new problems that isn't related in llms trainig data, And checking the problems with top reasoning llms.

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

    I hope you're right

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

    If they're not good at cp, then why is AI cheating a problem?

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

      Is your iq low or what? I do cp cuz i enjoy and AI cheating affects rank of dumb people like me.Plus you are no better than me either to say i am not good at it.

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

        When did I say you were bad?

        edit: I misread your comment lol, I meant if AI affects this many people, then that means it’s good at CP anyways. To claim that llms (like o3) are bad at cp is just cope if it’s already better than 90% of Codeforces users. You’re not dumb, o3 is just good at cp.

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

We could even lock the system during the contest when it is live, that is, when a contestant does come on to a contest, then the user is not allowed to go anywhere else on the laptop. I remember we had something like that in UAE in Covid when I was in Year 9. But, we also need to put an IDE that helps people to write code in the locked screen. Obviously, I am a newbie so I would not know typical UI interfaces and the problems people face when using that sort of locked system but it seems the most reasonable.

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

I think contest problem quality is fine — in fact, what really bother me is the thing below.

Nowadays people expect contest to be perfectly balanced in every way. And people care much more about distinguishing skill level instead of an interesting setup when it comes to the problems.

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

    Agree. It's like Goodhart's Law, where "when a measure becomes a target, it ceases to be a good measure". Once CP became more and more recognized in terms of prestige, more and more extrinsically motivated people began taking over discussions, the ones who are keen on blaming authors for being "unfair" towards X group when they are the ones responsible for improving their skills.