First, we need to establish the primary motivation for cheating. People cheat to improve their odds in this brutal job market. A high Codeforces rating and strong competitive programming contest results has historically been a strong resume signal. For example, I know a higher rated individual who told me they, now regrettably, sold their Codeforces account to someone for thousands of euros a couple years ago when they were in financial need. Why would anyone pay thousands of euros unless there is a strong chance your investment will be returned?
Given this, I don't think some of the solutions I've seen people propose will work. 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 desirable.
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. Preferably, identifying information such as people's names should be verified by government or university IDs. Implementing such verification systems isn't particularly difficult with modern tooling.
Furthermore, reporting the identifying information of cheaters to employers would really hit cheaters where it hurts. An automated system can mass report cheater information to major employers across sectors such as quantitative finance, technology, banking, and more!
If you can't tell, I have the utmost disdain for cheaters. They are desperate dogs, no better. If we take steps such as the ones I've outlined, the cheaters that remain will primarily consist of devious children. Someone else can propose solutions for those kinds of cheaters.
If Codeforces would like help implementing such measures, I, and I'm sure many others, would be willing to help.
UPDATE: Just thought of a nice way to formalize my proposals. We need a two-tiered system, one with ID verified accounts and everyone else. The two types of accounts will be allowed to participate in the same contests, but unverified accounts should not have a field that says "Rating" in their profile, but rather, something like "Unverified Rating". To verify your account, you should provide some combination of your name, government ID verification, university ID verification, a selfie of your face, and your university/work email. There are services out there we can employ for proper ID verification, and all of the data is destroyed after the verification process terminates. Thus, anyone seeking to show off their Codeforces rating on their resume to get a job would be incentivized to go through the verification process, as employers will naturally be more skeptical of an "unverified" rating. Kids should not get verified, as why would a kid care about whether their rating is "verified" or not? This solves the problem of handling minor data, we won't have to.









Everybody knows that anyone can cheat. So why would anyone believe that you are smart based on just your ratings ? If you have great ranks in olympiads or in ICPC. Or you are higher rated than the smartest LLM, then it's believable. But if you are magically 2200 rated, but can't even solve basic 1400 rated problem, or you struggle on a 1800 rated problem, it's A HUGE RED FLAG.
No one is dumb to believe a guy who says he magically got some brain and got to 2200 rating. Just trust your instincts and judge people on how smart they are. You can figure out just by interacting with them for a few minutes.
So in my opinion, The people who cheat are just frustrated guys, who failed everywhere, who have no hopes, nothing left. And out of frustration they are cheating so that everyone else also suffers from some kind of failure. They have this loser energy in them, which makes them feel good when they see someone else failing in the task which they suck at.
You should not just point them out. You should feel bad for them. Losers who couldn't solve basic maths. Poor souls, may god bless them.
bro really said, "skill issue"
no you're overthinking it. They're just stupid Indians who think high rating gets them a job for the most part. If you actually enjoy CP, you would never have any reason to cheat. Obviously they don't actually get the jobs, but they still believe it for whatever reason.
anyways for the OP: forcing people to dox themselves publicly is not a good idea. There is a variety of reasons people do not want to dox themselves, and usually its because of other reasons, not that they cheat.
What if it wouldn't be required that your personal information be publicly accessible, but only stored in the system so if you are caught cheating, the automated widespread report to employers can be executed?
If not that, are there any other ideas you can think of?
Maybe some cheaters are just bitter as you say, but I believe another major reason for cheating is because many people are told a high Codeforces rating can help you get a job.
The best thing one could do is to do nothing and let it be established that codeforces rating means nothing.
If someone is truly good, then they will perform good in interviews or contests without direct internet access to the whole web, such as contests like ICPC or IOI.
Codeforces rating losing its value would be perfect as then cheaters wouldn't cheat to gain rating anymore, and we can enjoy codeforces in peace
How is that fair to someone like me who has graduated from university and only recently gotten into competitive programming? I can't try for IOI (which is a ridiculous standard anyways, there are plenty people who could be great competitive programmers but not make their country's team, especially in major nations) or ICPC, I am too old.
I enjoy competitive programming, but I would also like it to be a strong signal I can put on my resume so company's can know I'm a serious candidate and give me an interview. Is that really too much to ask for?
There are measures we can take to make cheating more risky, I don't see why we should surrender to the cheaters.
I am saying that employers shouldn't use codeforces rating blindly as some kind of sacred factor.
Instead, they should interview the person themselves in an environment where cheating isn't possible, maybe in person and use that metric instead of codeforces rating.
Nowadays even getting interviews is torture.
its a tradeoff to reduce cheating so legit people could enjoy codeforces in peace
Auto comment: topic has been updated by christopherbitti9 (previous revision, new revision, compare).
Overall a good idea, but I can see some issues. First, is verifying using government ID actually feasible? I can't say for certain but it would be a major hassle for codeforces and may not be possible. Also, this solution is very job-oriented: saying that "Oh kids don't need jobs, so they wouldn't care about their rating being verified or not" implies that the only reason that rating should be verified is for jobs, and not for, say, proving that you are not cheating. Finally, and most importantly, talented cheaters (asking AI then implementing independently) will be completely unaffected and continue to skew the ratings, so the only difference will be that some dumb cheaters (who would eventually be caught anyway) can't verify themselves and hopefully stop cheating.
It is certainly feasible. Nowadays there are software tools that make pretty much anything you can imagine simple.
For example: https://www.veriff.com/idv-solutions?keyword=veriff&sfcid=701QF000011iVFCYA2&utm_term=veriff&utm_campaign=AMER_Search_Brand&utm_source=google&utm_medium=cpc&utm_content=&hsa_acc=4892195788&hsa_cam=21774159776&hsa_grp=167028249726&hsa_ad=715656550284&hsa_src=g&hsa_tgt=kwd-536269405134&hsa_kw=veriff&hsa_mt=e&hsa_net=adwords&hsa_ver=3&gad_source=1&gad_campaignid=21774159776&gbraid=0AAAAAB12SLuWeUR_O7-UtCVe2HNrCamMC&gclid=CjwKCAiA0eTJBhBaEiwA-Pa-hZ6UhFVjCtC_7BSsoxoS-1GsHYX5sPwWcpAmsp97V7QPwVggdlHSgxoC6IUQAvD_BwE
And yeah, I do truly believe kids don't need ID verified ratings. What purpose could that serve for them?
You mention talented cheaters. My proposal is a change to the structure of Codeforces. In my opinion, it is a necessary step in combatting cheating by targeting the current incentive structure. It doesn't address actual detection methods, which is actually a separate topic. If we take my two-tiered system and layer on state of the art detection methods, Codeforces will become a respectable platform again.
Ok, I agree with you on the verification part. But this system is powerless against a cheater who can hide from the plag check: They can simply verify and continue cheating. Your system basically makes sure that if someone is caught cheating, their reputation will be ruined, and that is better than nothing. However, this will only push cheaters to be smarter and more cautious to not get caught. Let's say that I am a cheater who does not want to be caught. I can simply do contests as usual, then if I am stuck on a problem that I should theoretically be able to do, say Div2 C, then I ask AI and implement solution myself. This gives me a considerable advantage compared to other honest participants, but is virtually undetectable. My rating will increase unfairly, but it will not attract attention. Then I get expert and put "Verified Expert" on my resume. How do you solve this?
And also, why don't kids need to verify rating? There are two categories "trustworthy" and "might not be trustworthy" and you put kids in the second category just because employers don't care about whether they are trustworthy? A kid could want to distinguish themselves from their cheater friends too. I understand that handling minor data complicates things, but that doesn't mean that you can write it off as "kids don't need to prove that they are not cheaters".
To your first paragraph, we obviously need to design very strong detection methods to add on top of my system. My system doesn't actually address that. I think we need something like checkpoint system as well so whenever an account hits a certain rating, they need to somehow prove their ability. I'm sure we can think of efficient ways to do this. 1600 seems like the first good rating for a checkpoint, since it's the one so many people desire to put on their resumes.
To your second paragraph, my philosophy is that kids should be using a platform like Codeforces to train and that's it. There are other avenues to prove themselves if they are that serious, such as national, offline competitions. Plus, if they know they are not cheating, then they will know that their "unverified" rating is actually legitimate. That should be enough.
Well, I have an idea that I think is quite novel, and also does not require too many system changes. It also might not be very difficult to implement.
So for each contest we have problem setters, a co-ordinator and testers. So we can introduce a new role called cheater detectors(I can't think of a better name now, so suggestions are welcome). So there can be a sort of hierarchy. At the bottom level, we will have people who check submissions of say, 500 users each. So 1 will check submissions of users 1-500, 2 will check submissions of 501-1000 and so on. They can report the suspicious submissions to the next level. The next level will consist of half the people at the bottom level. So 1 from this level will recheck the submissions submitted by 1 and 2 from the bottom level and so on. So we can form a binary tree like hierarchy. The contest admins can be at the top of the hierarchy and skip all plagiarized submissions they receive.
There are many benefits to this, in my opinion. So first of all it will greatly reduce the number of false negatives as compared to now, since each user has a fixed duty and lesser number of submissions to check. Secondly, it will also help reduce the number of false positives because the cheater detector at every level will have to give a green flag in order to label the submission as plagiarized. Also it avoids any unnecessary authentication. This system will be built on the trust that the cheater detectors are not malicious. Even if they are, one of the solutions is to keep shuffling the cheater detectors. This way an honest cheater detector can catch a cheater at some point even if the malicious cheater detector keeps letting him off the hook.
Now the last and most important question is who will be the cheater detectors? I feel that a there's a large part of the community who is very eager to reduce cheating. I'm sure many people will volunteer for the role. Many anyway do it, given the number of cheating blogs we receive nowadays. This way you can actually ensure the contest admins know about the situation and take active action.
Opinions on this idea are welcome!
Checking 500 submissions would take so long lol, might as well use AI for that part. I do agree though that we need much stronger monitoring/surveillance of accounts. It shouldn't be as easy as it currently is to make a new account in the first place.
What about proctoring? Screen-sharing and/or Camera. AI proctoring can be done, and, suspicious users can then be manually checked (in case AI picks up a false-positive)....
Codeforces can sometimes be down because of thousands of people submitting code together, imagine what it would be like if they were all uploading video feeds live.
Codeforces can build a separate, more powerful and modern backend to handle this.
Correct me if I'm wrong but Codeforces seems to be largely free, so who will pay for this great backend of yours? Mike? This is why it is unlikely to be implemented: it costs too much.
Ok, yeah. The cost would be too high, I agree
We wouldn't need everyone uploading live feeds. We need to set up rating checkpoints and whenever someone hits one of those checkpoints, they need to submit a live proctored contest to confirm their skill level. We might not even need live proctoring, maybe all we need is keyboard strokes.
Anyways, I'm sure rich companies like Citadel that place a heavy emphasis on competitive programming in their recruitment process would have an interest in sponsoring a competitive programming platform that deals with cheaters effectively. For them, the costs you mention are literally pennies. I bet Mike would be able to set something like that up if he approached them.
Definitely a good idea
Historically? Does this happen in country other than the one-country-we-all-know-but-cant-say-specifically-without-being-called-racist?
A high Codeforces rating can get you an interviews (and help you pass interviews) in quantitative finance, at some of the highest paying companies in the world such as Citadel. A lot of the higher rated individuals I've spoken to on Codeforces are working in quant. I don't think that's a coincidence. Some fools think that obtaining a high rating through cheating is all they need to do, not realizing that they actually need to be able to pass the interviews which they won't be able to do since most cheaters are newbs when they're not cheating.
the government said similar things before implementing the TSA
Care to elaborate? Also, your grind is admirable. Have you retired now that you've reached master? Can you give some quick tips to someone like me who's trying to reach a high rating such as yours?
In my opinion, cheaters are no excuse to put such restrictions on this site. Can you really imagine codeforces but you have to submit a government ID to get a real rating? That goes against the spirit of the site. Your points are kind of similar to the US government's argument for the "patriot" act and TSA after 9/11: because of the increased terrorist activity (or that was their scapegoat), they felt like they had to put more restrictions on their citizens. And of course, once those restrictions get put into place, they can never be taken away. So you will have to deal with TSA for your whole life, along with other government organizations that get created in the future due to similar arguments. To give you credit, I think that your argument is genuine, unlike the other ones.
Unfortunately, I don't really have any other than solve hard problems, but you can get that advice from anyone. If I were you, I'd be solving in the range of $$$1900-2100$$$ mainly. When you've done enough problems, a lot of problems at or below your rating just become about combining/altering tricks you've seen before.
I would prefer to avoid imposing such restriction if possible. Do you have any other solution in mind that wouldn't require such drastic measures? Or, are you on the "we should just stop caring about rating" train?
Thanks for the tips. I haven't had much time to grind problems lately, but when I do I'll look at problems in the 1900-2100 range.
Definitely not the second one. It wouldn't be as fun without rating. Even leetcode, which isn't nearly as rating-focused, isn't the same ever since AI got good enough to AK every contest. A whole new set of people that just appeared in the past year have taken the top $$$100$$$ (like jojo_007), and now the contests just aren't as enjoyable anymore. I remember a few weeks ago they actually had a problem that the AIs couldn't solve, and the leaderboard looked like it did in $$$2023$$$. None of the new people solved it, and leetcode still didn't ban them.
I think a better solution to the problem would be to get the big tech companies to stop caring about competitive programming. The only reason why there are so many cheaters is because the big tech companies care. All of the cheaters are either children, who get caught easily, or folks doing it for job opportunities. Certainly there are honest people that come from this group, but it is true that most of the dishonest people are in this group.
My solution is this: big tech companies should give $$$IQ$$$ tests to their candidates. This would:
Save candidates' time. candidates wouldn't have to waste dozens of hours grinding hundreds of leetcode problems to have a shot at big companies.
Work as a better filter: the only reason why competitive programming problems are alright at filtering candidates is because there is some relationship between competitive programming skill and general intelligence. If you just give the candidates an $$$IQ$$$ test, you would immediately have a better filter cuz you have a better indication of general intelligence.
Save time and resources for the company: a technical interview usually takes $$$30+$$$ minutes, and you constantly have to replace problems so they don't get leaked online. On the other hand, the Wonderlic, a decent $$$IQ$$$ test, takes $$$12$$$ minutes, and the companies don't have to worry about replacing problems since the Wonderlic company handles that. There are many more options for good $$$IQ$$$ tests.
Save online competitive programming contests.
Is there even a downside?
I think IQ is important for societal planning, but its touchy when you try to apply it to individuals to say one person can have a specific class of jobs and another cannot. I've thought about this idea a lot, and I see pros, but I also see cons. IQ tests overemphasize processing speed. Processing speed is a poor proxy for long-term ingenuity. For example, if you look at raw IQ, several East Asian nations might stand out at the top, but have they been the most innovative in the modern era? No.
Well it wouldn't always be the case that the highest-$$$IQ$$$ candidate gets the job; the $$$IQ$$$ tests would just replace the leetcode interviews. I think that this would be an improvement for everyone involved.
Some do. The ones that do usually don't have great correlations with general intelligence, though. I wouldn't say that the Wonderlic overemphasizes processing speed, though, to a point where it'd decrease its g-loading. But also, the Wonderlic is not on the level of professional IQ tests, so you can't hold it to the same standard. Still, its g-loading is undoubtedly higher than that of a leetcode test.
That's a good point, and I don't know what the problem with East Asians is (I have thought about it a bit). I think that some of it is due to the fact that their $$$IQ$$$ advantage is almost entirely because of their nonverbal/mathematical advantage. Their verbal scores are around those of whites, if not slightly lower. Verbal ability seems to be more important than mathematical ability in most cases.
But if you look at any major math/computer Olympiad, they dominate. So, regardless of whether you use $$$IQ$$$ tests or leetcode problems to filter candidates, the East Asians will get through, so if you were arguing that they would get through the $$$IQ$$$ barrier but not necessarily the leetcode barrier cuz of their supposed lack of ingenuity, I'd have to disagree.
East Asians aren't mathematically superior, per se. The dominance of Europeans (that persists even today, despite the globalization of academia), in fields like math, physics, and theoretical computer science practically refutes that idea. I've seen some studies, and their main advantage is processing speed in general, as we've discussed. That's great if you want to solve some programming puzzles on Codeforces or in an interview, or if you want to compete in math Olympiads, but it's not as important in real life. Out of the 4 highest rated chess players in the world, 3 are European and the other, Hikaru, is half. I'd say chess talent is a better proxy for long-term ingenuity, since you have to sit and work on a single task for hours at a time, than any of these things: IQ tests, LeetCode interviews, Codeforces, and math Olympiads. So I guess you're right in the sense that, given the current system, IQ tests are a good, somewhat one-to-one alternative. But, I don't think IQ tests OR the current system are particularly effective.
I'm not gonna doubt you that East Asians on average have higher processing speeds than whites, and maybe that is even the $$$WAIS$$$ index where they outperform whites the most. I'm not sure, and I don't think it matters that much.
East Asians have been shown to outperform whites in highly g-loaded tests of nonverbal and mathematical thinking (Raven's progressive matrices (which, okay, isn't that highly g-loaded), older versions of $$$SAT$$$ math). These tests have very lax time limits, so it's hard to make an argument that processing speed plays a significant role in the scores on these tests. I don't even think some versions of the progressive matrices are timed, but East Asians still do better than whites. If you look at the average PISA math scores, you find that East Asians do the best. The evidence points towards East Asians being a good deal better at math than whites, on average.
If you would argue that their higher scores on these tests don't mean they are better, I would like to hear it.
I'm not sure how true this is, but anyway something like this would not necessarily be due to Asians' lack of mathematical ability. But I do see your general point here, and I think that that is part of the mystery. I don't think the answer lies in the fact that they are actually lower than whites in mathematical ability, though, since that would go against pretty much all of the relevant $$$IQ$$$ test data out there.
Also, I think that chess is a bad example of something that requires ingenuity, since it is weakly correlated with general intelligence at the high levels, and those who start young have a massive advantage over those who don't. Plus, chess isn't really that big in East Asian countries.
You can cite as many tests as you want, but I wholeheartedly believe ingenuity, creativity, innovation, whatever you want to call it, has a component that comes from an inner source of inspiration that those things don't measure. My philosophy is that not all things are measurable, and that's one reason why I don't view AI as an existential threat to humanity.
If Grothendieck sat down for an IQ test while he was alive, I'm sure he'd have scored lower than tons of people living today, but are those people going to develop the completely non-obvious mathematical framework of sheaves and schemes that ended up revolutionizing modern math and leading to multiple breakthrough moments? Something of similar magnitude in another field? Probably not.
Chess has a heavy knowledge component, which is why I said chess talent. I think you get what I mean, though. You'd want to test people in an environment where they can think about something for a protracted period of time and test their ideas against each other.
We can't do anything about cheaters. That's a fact, and we must understand it. If someone wants to cheat, nothing will stop them.