Christine-'s blog

By Christine-, 3 months ago, In English

Backstory

I have been adding hundreds of people to my Codeforces friend list so I could measure my performance against local standings I trusted more.

At the end of April 2026, I returned to Codeforces rounds after a break I had to take from the end of October 2025. It felt like one of those zombie-apocalypse movies or shows where the main character wakes up in a hospital and finds empty streets full of wreckage and zombies crawling around. Yes, you know what I mean.

In one Div. 2 round I joined virtually in May, the whole first page was filled with them. And those were only the conservatively detected zombies. One can only wonder how many seemingly healthy participants on the first page were bitten, and how many hid the bites and scratches.

Codeforces Community Rating

If the zombie story does not convince you, I humbly suggest taking a look at my rating deflation research. Right now, there is 150-190 deflation on average.

Hereby, I invite unbitten survivors to my shelter, which I call Codeforces Community Rating.

The gist of the project is a community review system focused on building a whitelist rather than a blacklist. My assumption is that a whitelist can be more effective than a blacklist because making a new Codeforces account is very easy.

What it does

  • It is a separate public ranking for users who passed community review.
  • You can apply, nominate, or report suspected unfair play. Each case is assigned to several reviewers, who independently review the case.
  • You can become a reviewer and review your peers and help build the list of legit contestants. Currently reviewer capacity is very scarce, so if you are interested in the project, consider becoming a reviewer to review cases. DM me to start.

Advantages

  • Detailed evidence is reviewed privately instead of being posted as a public guide for people trying not to get caught.
  • Cleared users appear on the community rating leaderboard. Contest standings can then be filtered to those users, so we can assess our performance more accurately.

Here are the Codeforces Round 1106 (Div. 2) community standings. The top 10 looks so much cleaner than the official board.

IzhitskiyTimofey had been donating rating for several rounds to set up a big Div. 2 jump, then still got robbed of the official win by known cheater zddtuus.

Compare that to the official standings, where 6-7 of the top 10 are likely cheaters.

Here is a reviewer POV

Eligibility
Decision rules
Review principles

Current Status

  • The project is in alpha, so expect rough edges and policy adjustments.
  • For now, community-filtered standings are available only on the project site. I plan to ship a Codeforces extension later.
  • You are welcome to report bugs and suggest ideas.

UPD 1

  • I'm working on community Elo system, so that we can have not only clearer standings but also the rating. It turned out to be trickier than I thought.
  • I'm working on a scoring algorithm. It will score legitimacy of participants, and will potentially automate most of the reviewing work.

UPD 2

  • Added an activity leaderboard visible to community memebers at Community page

FAQ

Q: I cheated in the past but I don't cheat anymore. Can I join?
A: At this stage of Community Rating, participants who cheated in the past, but supposedly haven't been cheating for a long time since then, can't join.

Q: How do you know that there are no cheaters among currently cleared participants?
A: I don't know. clear status means that a participant is likely legitimate by a significant margin. Sometimes new evidence appears and the status changes from clear to cheater. The value of the list of clear users is that the ratio of cheaters is much smaller than in the official rating.

Q: Can't we just use the friend list as this blog suggests? Why do we need the project?
A: You can use the friend list. However, the project pushes the idea further. You can think of it as a filtered union of friend lists. Moreover, the more legitimate participants are in the list, the better you can estimate your performance. Also, standings alone are less precise estimate of the progress than an Elo system, which I'm working on currently.

Q: Can I report cheaters? Say, LLI_E_P_JI_O_K apparently cheated as noted in [this blog].(https://codeforces.me/blog/entry/155842)
A: Yes, you are encouraged to report high profile cheaters. Also, note how the author of the blog is not a low-rated participant in contrast to what certain people, especially cheaters, were trying to convince everyone that only lower rated participants care about cheating and "waste" time raising legitimate concerns.

Acknowledgements

Thanks to fisher199 and HelloFromMars for active testing, good questions, and ideas, and nik_exists for suggesting OAuth.

Thanks to 123gjweq2, Nyemot, MinValgen, DarkTemplarDrop, and stefdasca for testing.

Thanks to christopherbitti9 and CatalanConvolution for questions, and to TwentyOneHundredOrBust for saying good morning in the middle of the night.

Thanks to macaquedev for the database.

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

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

as a tester

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

As a tester, hope this data grows huge and pinpoint accurate. Keep moving forward.

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

I don't know, it just feels like the leaderboard just has a lot more litter now. like it's kind of like a walmart parking lot now. anyway, good job, I think that it's a good project and it has potential, but I guess what will make or break it is whether or not enough honest people use it so it feels like a big contest (instead of just competing against $$$5-10$$$ others).

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

    Broski thinks that everyone lives in America and knows what a Walmart parking lot looks like lol.

    Yeah, true, the value entirely depends on fair play participants using it. I think I'm not alone with hundreds friends in Codeforces friend list, so I have some hope.

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

bruh! 20 contests just to be ranked ... i need three more months (it is too much)...but do push out that web extension soon... it just gives satisfaction seeing cheaters getting marked...

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

    I tried to balance the threshold. Here are some reasons why we need a significant threshold.

    1) Getting to the whitelist shouldn't be as easy as registering a new Codeforces account. So if you're cleared but then your unfair play is exposed, you can't just make a new account and join again.

    2) Reviewers need data to make a decision. More data is generally better.

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

You're welcome and gms!

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

As a tester, more than happy to help :)

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

Bruh.... I forgot that my account has "dark history" :sob.

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

Cool project, but I have a few questions/ideas.

1) Are there any plans on calculating a new community Elo, which would basically be your codeforces rating but only considering highly trusted users when doing the calculations?

2) I don't think you need tens of thousands of trusted participants in your database to get a good gauge of contest and problem difficulty. I would make the trust requirements as strict as possible. For example: allow only participants that are problem setters, testers, coaches, in person competitors, or similar. Give each person that is trusted one invite code to "vouch" for someone else. I think none of the filters you have for ranking are that strict, and that the strictest filter you have right now is that most cheaters won't be bothered to apply to be on this.

3) Under stricter verification rules, it is inevitable that a large amount, probably the vast majority, of legitimate contestants won't be able to be verified. I don't think that should be considered an issue. I would add an option (assuming you do add a community Elo) for someones community rating to be calculated without it affecting everyone else.

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

    Thank you for the good questions.

    1) Yes, I have such plans if the project becomes popular and a lot of people use it. The thing is that the accuracy of an Elo system depends on the number of active participants. If there are too few contestants, rating updates are very noisy.

    2) There are several questions in this paragraph. I will address them one by one.

    2.1) As I said, for an Elo system to work, the more participants, the better.

    2.2) The spirit of the project is to average predictions of an ensemble of classifiers. This reduces the variance of predictions while preserving the mean. Allowing a point estimate, meaning one person making the final decision, would remove this effect. I also designed the decision rules so that no single vote is decisive by itself.

    2.3) The goal of prerequisites is to provide data to reviewers, weed out likely unsuitable contestants who don't respect sportsmanship, and discourage fresh alt accounts with few contests. Such filters reduce reviewer load and allow reviewers to focus on participants who are more likely to be legit.

    2.4) I think cheaters who cheat for jobs or to brag in their CV/LinkedIn shouldn't apply for Community rating, since it's an unofficial rating. So yes, at least at the early stage, the idea of community rating is naturally protected from cheaters.

    3) With only a few contestants, an Elo system will be very noisy. Also, I don't understand the last part about computing rating without affecting other participants.

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

    Only some of the trusted participants will participate in a given contest. So if the initial pool is small, there might not be enough data points for a given contest, to properly calculate ratings.

    Another approach could be to collect a new sample of N seemingly legit participants every contest and calculate ratings based on them. We don't have to be super precise, because every sampled participant will only be used for this one contest. Probably, this can even be automated. This still uses [user:Christine-]s general whitelisting idea, which I think is the way to go.

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

      I haven't thought deeply yet, but here's my concern.

      Elo rating is relative. So the update will be relative to the sample. If it's different sample each time, than the reference is different each time, so the rating update could be noisy.

      If we can determine legit participants, it's much better to not sample at all and just use all of those, who participated in the contest. Of course the same reasoning from the precending paragraph is applied here. However, the larger the sample, the less noisy the estimates.

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

        My point is that we CAN'T determine all legit participants but maybe we can find a sufficiently large sample for every contest. I see your first point. Maybe the only way to know for sure is to test.

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

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

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

Hope I can join the community soon!

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

    Hi, MinumCoklatDingin!

    I see identical submissions linking this account with MinumCoklatPanas, so I assume MinumCoklatPanas is your main.

    I saw your cheating-downplay / anti anti-cheating comments.

    Rating is just some online numbers dude, not that big of a deal. src

    If people cheat, then let them be. It's their loss anyway src

    "cheater-hunter"s who would accuse everybody performing well are cheating because they cant perform that good src

    maybe you should spend your time training rather than accusing someone cheating out of pure jealousy and blaming "cheaters" for your rating and not realizing you have skill issue. src

    But doesn't mean we have to point finger blindly in every direction just because number of cheater got so massive. src

    I don't really understand why you want to join a community that cares about, as you say, just some online numbers like rating and standings.

    To borrow your own advice: maybe you should spend your time training rather than joining communities that care about fair play, because blaming "cheaters" for your rating might not be the real reason, while skill issue is?

    Anyway, if you respect sportsmanship, you are welcome.

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

      Well, that was harsh to say the least. I thought this is suppose to be a community with high integrity and passion for CP. That was the reason i respected the movement and wanted to join.

      I still dont care about rating. I just want to be in a community that still respect the art of CP and doing it for fun. That's what i thought when seeing your post.

      But looking from your comment, now i doubted that :( it seems like you just want a community that's based on hatred towards cheaters and not based on the love towards CP

      The reason i created this account apart from my "main" is that i want to preserve that account as memento from my college days. If you think that i would cheat by submitting from two different accounts in the same contest or smth like that, than i'd be happy if you can prove i did that :)

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

        Well, that was harsh to say the least.

        The harsh part was a compilation of your own comments, including replies to me. I did not invent that tone.

        I thought this is suppose to be a community with high integrity and passion for CP.

        It is. People who respect sportsmanship are welcome. Passion for CP and fair play are not separate things.

        it seems like you just want a community that's based on hatred towards cheaters and not based on the love towards CP

        No. The project is based on review, evidence, and a whitelist of trusted competitors. If you think it is based on hatred, point to the specific rule or design choice you mean.

        The reason i created this account apart from my "main" is that i want to preserve that account as memento from my college days.

        You still use MinumCoklatPanas to comment regularly, so using this alt under this specific blog looked intentional. Given your public comments downplaying cheating concerns, that raised suspicion.

        If you think that i would cheat by submitting from two different accounts in the same contest or smth like that, than i'd be happy if you can prove i did that :)

        I did not accuse you of submitting from two accounts in the same contest. I said the accounts are linked, and your public comments matter. If you comment from an alt under a fair-play project, expect people to connect the accounts and hold you accountable for the main account's comments.

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

Great initiative! I believe you're tackling a very important problem here. As a first suggestion, maybe the "no skipped contests" requirement should be relaxed to "#skipped_contests <= threshold_function(#total_contests)". False positives do happen and the more contests one had, the more likely some were erroneously skipped. I am currently non-eligible for a review because of that.

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

    Thank you for the suggestion. False positives are a problem indeed. However, there's a tradeoff with false negatives when designing a binary classifier.

    I may revisit the skipped contest constraint in the future. For now, I think it is better to deal with such cases individually.

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

What if I have only 1 skipped contest which was 2 years ago, and since then I never cheated?

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

    I have recently answered to similar question in a private discussion. Here's my position.

    At this stage of Community Rating, I don't clear participants who cheated in the past, but supposedly haven't been cheating for a long time since then.

    This is a problem, as there are people who made such mistakes in the past, but now are legit participants. Yet, there are also people who only claim they stopped cheating, and who still cheat. And I often can't clearly separate these two cases.

    If Community Rating survives time, I may revisit this rule, after I do more research on that.

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

gud platform

»
3 months ago, hide # |
Rev. 3  
Vote: I like it 0 Vote: I do not like it

Hi, I'm interested in becoming a reviwer and my friend wrusb became one despite the fact that he is not 1600. That's why I think that there might be some exception. I also have experience in exposing cheaters (as you can see in my blogs), so I think that I will do this job good. So, how can I become one?

Edit: You might receive a message from me in 2 minutes.

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

I've waited for 4 weeks and somehow I'm still under review?

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

May I be admitted in this?

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

    I don't think so. You have very recent skipped contests with AI generated submissions.

    Also, I am curious about motivation, as you are not the only one, who applies to the project while having AI generated submissions.

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

Umm I've been waiting for 6 weeks and still under review?

»
6 weeks ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Nice I waited for 2 months and still "under review"