"Lies, damned lies, and statistics."
Big shoutout to macaquedev and all the people working on the cheater database. Their project has already identified 2,100+ verified cheaters. In my experience, they don't assign a cheater mark easily; some of my reports (which, to me, were clear cases of cheating) were rejected.
Here is a small survey on cheating statistics on Codeforces. I computed the rating distribution of caught cheaters and looked at some funny demographics. Namely, we try to compare the frequency of cheating per country.
Data
The list of handles of cheaters was taken from the macaquedev GitHub. My small research is based mostly on this list. I used the Codeforces API to gather the rating and the corresponding country of each handle from the list.
Next, I used the Codeforces API to gather the number of active users (rated a contest in the last 6 months) per country.
Rating distribution of caught cheaters
The following graph is a little tricky. We should take into account that relatively higher-rated cheaters tend to cheat more cleverly. That is probably one of the reasons why there aren’t as many cheaters in the blue range as one might expect.

Here is a more detailed table with the percentages
| range | count | in range, % | upper_tail, % |
|---|---|---|---|
| ≤1199 | 715 | 34.52 | 100 |
| 1200–1399 | 414 | 19.99 | 65.48 |
| 1400–1599 | 434 | 20.96 | 45.49 |
| 1600–1899 | 398 | 19.22 | 24.53 |
| 1900–2099 | 61 | 2.95 | 5.31 |
| 2100–2399 | 39 | 1.88 | 2.37 |
| ≥2400 | 10 | 0.48 | 0.48 |
Grey cheaters are the ones caught most often. We can probably also assume that they are the easiest to catch. My subjective feeling is that the situation is grimmer in blue/purple than the graph suggests.
Also, note the blue peak in the 1600–1700 range. Those are probably people who cheated their way to reach blue for some sort of placement and then dropped CP (thank God).
Demographics of caught cheaters
Since many people don't list their country on CF, in this section I only take into account users with listed countries. Sadly, we lose more than half of the data here.
I was not satisfied with claims that we see cheaters from region X more often than from other regions simply because there are a lot of participants from region X. To me, this statement is too loose.
How about applying Bayes’ formula? How about computing the conditional probability
Unable to parse markup [type=CF_MATHJAX]
, which we will denote for brevity asUnable to parse markup [type=CF_MATHJAX]
?Let’s make a simple computation:
Unable to parse markup [type=CF_MATHJAX]
Here is the problem: I don’t know how to estimate
Unable to parse markup [type=CF_MATHJAX]
. Of course, there are many more cheaters than the 2100 listed in the database. So, instead, for each country X we compute the ratioUnable to parse markup [type=CF_MATHJAX]
Then
Unable to parse markup [type=CF_MATHJAX]
cancels out and we haveUnable to parse markup [type=CF_MATHJAX]
As the author of this blog, I choose Russia as the reference country.
Thus, for each country X we need to estimate probabilities
Unable to parse markup [type=CF_MATHJAX]
andUnable to parse markup [type=CF_MATHJAX]
.- cheaters — % of all identified cheaters who are from the country. It estimates
Unable to parse markup [type=CF_MATHJAX]
and is computed asUnable to parse markup [type=CF_MATHJAX]
. - users — % of all identified users who are from the country. It estimates
Unable to parse markup [type=CF_MATHJAX]
and is computed asUnable to parse markup [type=CF_MATHJAX]
- rate —
Unable to parse markup [type=CF_MATHJAX]
.
Now we can observe the computed values. I dropped countries with less than 5 cheaters caught, so that our inference is more stable.
| country | cheaters count | cheaters, % | users, % | rate |
|---|---|---|---|---|
| India | 530 | 61.92 | 45.02 | 4.0921 |
| Vietnam | 46 | 5.37 | 3.44 | 4.6476 |
| Bangladesh | 34 | 3.97 | 11.19 | 1.0557 |
| Egypt | 32 | 3.74 | 7.02 | 1.5837 |
| China | 31 | 3.62 | 9.69 | 1.1115 |
| Pakistan | 27 | 3.15 | 0.58 | 16.0755 |
| United States | 13 | 1.52 | 1.48 | 3.0494 |
| Russia | 13 | 1.52 | 4.52 | 1 |
| Iran | 10 | 1.17 | 1.04 | 3.3395 |
| Palestinian Territory | 8 | 0.93 | 0.94 | 2.9611 |
| Azerbaijan | 8 | 0.93 | 0.34 | 8.1122 |
| Japan | 8 | 0.93 | 0.75 | 3.6908 |
| South Korea | 6 | 0.7 | 0.76 | 2.7551 |
| Brazil | 5 | 0.58 | 1.13 | 1.5379 |
| Kazakhstan | 5 | 0.58 | 1.18 | 1.4683 |
| Romania | 5 | 0.58 | 0.56 | 3.1301 |
Here is a visualization with the rate sorted in descending order.

Limitations
I am not biased at all, and I didn’t expect such results. However, keep in mind that the sample size is still not very large (except for India), so the inference can be noisy. Also, note that I don’t build confidence intervals, so the differences between some pairs of countries may not be statistically significant.
For the rating distribution of cheaters, I've already noted that it naturally doesn't give a precise reflection of the reality because it is more complex to catch smart cheaters.
Conclusions
We provided a rough estimate of the factors by which the rate of cheating differs by country and debunked claims like 'they cheat a lot because there are just a lot of them'. Some are caught cheating an order of magnitude more often than others. To make the estimates and the statistics in blue/purple range more precise, please, report more cheaters.









Auto comment: topic has been updated by Christine- (previous revision, new revision, compare).
Dear Mindeveloped, Would you like to take a look at this post and please, for god's sake, stop India hate and start Pakistan hate?
It's the fact that India has 500+ cheaters, even if u hate Pakistan or ur Indian, u can't change this lol
no of indians users active on codeforces are way more than any country
And we also can't change the fact that India has a huge population on this platform. So will you just ignore so high cheating rate from Pakistan just because they are less? In my opinion, We should look at the ratios, not the numbers. That was the point of this blog, we all knew India has a lot of cheaters. Did you even read the blog properly?
For matters of improving the experience of codeforces rounds, we definitely should NOT be looking at ratios, but absolute numbers. What is the point of knowing that a country is 90% cheaters if there are only 10 people participating there? I would rather focus on the 10%-cheater country that has thousands of participants.
For matters of picking which country to hate, do I even need to say that you shouldn't be picking a country to hate?
But these people pick India to hate. Even GMs like this stupid Mindeveloped guy.
India accounts 61% of the cheaters and therefore has the biggest impact over academic integrity values (and ratings ofc). I don't understand what does the value of $$$P[\text{user is caught cheating}∣\text{user is from country X}]$$$ implies.
P[ Is a cheater | from X country ] means if you pick someone from X country randomly, what is the chance that the person is a cheater.
It's more of quality than quantity,
everyone agree that India has the most impact on cheating,
but not everyone agree that India has the most cheating rate (per person).
This blog serves as a measured answer.
Yo, mindeveloped, you’re probably jizzin’ your pants over this data, huh? Indians owning the cheater list got you so horny you’re basically fuckin’ the screen. Bet you’re drooling, dick in hand, thinking you’ve won the racist lottery. Calm your tits, bro—numbers ain’t a race, but your bigot vibes are loud as fuck. Get a grip before your hate-boner breaks the internet.
I am thinking of how aweful your prompt must have been for GPT to utter this shit.
Auto comment: topic has been updated by Christine- (previous revision, new revision, compare).
Hi Christine-, thanks so much for the shoutout and for analysing my data. I'll put in my thoughts about some of this.
Sorry that your reports got rejected. If this happens again I'm very happy for you to DM me and I will review once again / give you more information as to why I rejected.
I don't think "smart cheaters" is the reason why users blue and above aren't caught as much. I think the reasons are that they get caught before they get to blue (after all it takes a few contests to get to blue), and that there are generally fewer blues on the platform (just, due to how the rating system is built).
Anyway, thanks a lot to the community for submitting reports. Keep going!!
For those who seldom sell their honesty already at 1500+, 1800+ . They only need a single contest/couple of problems in a contest to become Blue and above.
What I'm saying is, new users who come to the platform and start cheating, need about 5 or 6 contests to become blue. By that point, we've most often caught them
Bro is farming up votes lol
))
Ayə sağolasan brat. Eşq olsun bizim oğrulara!
Hocam türküm, merak ettim. "Oğru" ne demek?
Hırsız
Bruh, i don't know about the cheaters from my country.
Well well well
Well I may have some problem expressing my thoughts.
It does for sure and the ratios of the posterior probabilities point to exactly this.
Nobody says that.
True. Also, nobody says that everyone cheats.
And who do you blame? Do you blame hordes of cheaters from country X? No. You blame someone who lists facts and who has nothing to do with cheating in country X.
Why? It is perfectly fine to me. People have a right to know it, especially when cheating is so disproportional.
Horrible post. There is no direct connection between nationality and cheating besides the statistics, you could make the same argument for thousands of other random criteria that have nothing to do with one another, but just so happen to align. And the poster isn't "blaming" you for the amount of cheaters from country X, he's simply pointing out that it is improper to incriminate entire countries. Find me one competitor who can control who cheats/doesn't cheat from his country.
There's a big difference between being passionate about honesty in competitive programming and pointless discrimination tied to honesty in competitive programming.
Have you read the blog? About what "direct" connection are you talking about?
Statistics can’t provide causality. What’s your point?
Since when is citing statistics the same as incrimination?
At this point, I understand that I wasted my time replying you. But I've already written the reply so be it.
Yes, the data does indicate that some countries (or one in particular) have more number of cheaters or high cheating rate than others. But I still don't see why is that supposed to mean cheating is connected to country. I mean it is a personal choice that one decides to cheat. How does country matter here?
Also, if anyone is curious, here is a graph that shows national $$$IQ$$$ vs rate of cheating for countries with $$$\ge 5$$$ cheaters.
The correlation of $$$|r| \approx .22$$$ is close to the correlation between civility and $$$IQ$$$.
Through all of these years, the only unshakeable constant in my life has been one man schizoposting about IQ under every other cf blog I lay my eyes upon. It has truly been a pleasure.
The red line is as pointless as my life
I love how bro always include IQ and culture / cilivity into controversial topics, that is why I follow you man! Also you can see that Pakistan and Azerbaijan are outliers and removing them makes the correlation basically zero (I didn't actually do the math, just eyeball statistics, seems pretty uncorelated to me)
I'm not gonna remake the graph without those two, so I will agree that without Pakistan and Azerbaijan, the correlation is basically $$$0$$$. But I don't think that it is fair to exclude these two countries just because they have oddly high rates of cheating. In fact, these might be some of the most important countries to include because of their high rates of cheating. If we exclude them, we might be artificially restricting the range on the rate of cheating instead of just removing outliers.
Either way, I would not say that it's a coincidence that both of these two countries have $$$ \lt 90$$$ national $$$IQ$$$ s. I could just not imagine a country like China or the US cheating this much. But there definitely is a lack of data here. Maybe the topic should be revisited in a few months when macaquedev's list has grown to like $$$20k$$$ or something.
It's funny to see that many Indians here are trying to reduce the racism on themselves (which is good because racism is bad) but the way they are doing it is by redirecting the racism towards Pakistanis, GUYS THAT'S NOT HOW IT WORKS, RACISM IS ALWAYS BAD EVEN AGAINST PAKISTANIS!!
As an Indian, Please don't judge just because one person did that. I'm not trying to redirect it towards Pakistan at all. I just want India hate to end on codeforces. But to be honest, it is a fact that India produces the most cheaters on this platform, so the hate is kind of valid. But I hate to see that I'm not taken seriously anywhere just because I'm from India, even though I'm nothing like other people expect an average Indian to be.
My fav cheater is Master :D
Love the action on this blog, keep going
The rate statistics have changed since first publishing of this blog. Here is a new table of countries and rates. (Table is from 2025-06-09 17:55 UTC)
Here is the new rating graph:
Looks like a normal distribution
Yeah, that gave me the idea to drop an actual bell curve there. These are the statistics:
Cheaters own problem G in last contest, which a lot of reputed honest coders didn't solve. Very shameful thing. How can I give contests if there are so many cheaters?