Hello everyone, I think that I might have a good idea to combat some of the cheating in online contests. Basically, we can split the rankings (and rating calculations) of div. 2 rounds into one containing users with $$$1600+$$$ rating and one containing users with $$$ \lt 1600$$$ rating.
Here is why. In div. 1 rounds, there are hardly any cheaters (yes, there are some, but they are few and far between). I think that the reason for this is because, in order to reach div. 1, you have to be a bit serious about competitions. Most cheaters aren't serious enough, as they get caught before they reach div. 1, so div. 1 is left with a bunch of honest participants.
But I think that this holds true for those rated $$$1600+$$$, too. Of course, the cheaters become more frequent as the rating threshold goes lower, but I think that finding a cheater expert is quite uncommon, too. This is shown by the standings of the most recent round: most of the cheaters in the top $$$100$$$ aren't even expert.
Another reason why div. 1 has so few cheaters is because div. 1 only has $$$900$$$ participants each round, so cheaters are much more obvious. If we split the div. 2 rankings like this, the cheaters above $$$1600$$$ would be much more apparent, as there would only be a few thousand participants with ratings above $$$1600$$$ (as opposed to $$$10k+$$$ with how the rankings are split now).
You might say that this is just handing the cheating problem to those with $$$ \lt 1600$$$ rating, but I don't think that this would be the case. I think that cheating below $$$1600$$$ would more or less stay the same, while cheating above $$$1600$$$ would go down a bit due to the increased visibility of each individual cheater (because of the smaller standings table). So the $$$1600+$$$ table would have very few cheaters.








Counterpoint: almost all of the new experts i see nowadays are chatgpt users
I'm not sure if almost all of them is fair to say, but I will assume that your point is true. If you can identify them as chatgpt users, that is a good sign, because it means that they would be seen in the smaller $$$1600+$$$ standings table, and (hopefully) removed.
One thing that is so tricky about catching cheaters in the current system is that the standings table is so large, and most of them are below $$$1600$$$ (even if most new experts are cheaters, it is still true that most cheaters are lower than expert). In the proposed system, there would be fewer users to check, along with fewer cheaters. There would even be a lower frequency of cheaters, as there are certainly more cheaters per $$$ \lt 1600$$$-rated user than cheaters per $$$1600+$$$-rated user. So the cheaters would stick out like sore thumbs.
I'm sure you've seen what it's like when a cheater is caught in a div. 1 round. It creates quite a stir, and, in most cases, the cheater gets banned. I think that dividing the rankings up like this would make the $$$1600+$$$ table kind of like a nerfed div. 1 in terms of catching cheaters, because more cheaters would get caught than in the current div. 2 system, but fewer (wrt the ratio of cheaters to participants) would get caught than in the average div. 1.
What if they just ban cheaters straight up instead of just skipping, altough I understand that it may not solve the problem completely but still it will be frustrating for cheaters to rebuild the rating once they loose it.
true.
I agree with you. This is basically what happens in codechef. Due to this Div2 A on codechef only only gets around 1500-1800 accepted users. There would still be cheaters, but it would be very easy to spot someone due to the less numbers of participants.
Moreover, new users would not be able to enter div 2, they have to spend few months in the lower divs to enter div2.