Codeforces and Polygon may be unavailable from December 6, 19:00 (UTC) to December 6, 21:00 (UTC) due to technical maintenance. ×

larush's blog

By larush, 5 months ago, In English

Hi codeforces!

So recently we have all seen that the number of cheaters has grown to become quite a lot. I have come to know that people are using plagiarized code and rephrasing/formatting it using AI tools like ChatGPT/Claude. Many of these tactics include globally changing variables names, shifting functions, adding useless pieces of code (like this code) and many more.

Of course, these users cannot survive in Div-1 competitions, they only plague lower Divisions. However, it's more than that. Cheating in CP completely goes against the spirit of competition. It is intended to be like a "game" where users compete to see who can solve more problems faster. Like every game, cheaters are always unwelcome. In the recent blogs of reported cheaters in Div-3 and Div-4 rounds, we came across many submissions in which we could clearly see unfair means of competition.

I believe these submissions can be flagged and detected by us humans. Well, at least a lot of these submissions can. But I've noticed that the enormous amount of cheaters makes it difficult for admins to ban them and many of them still cheat freely. As Mike mentioned previously in an AMA, its incredibly tedious and time-consuming to get rid of cheaters. Mike mentioned here that each round involves getting rid of cheaters, but it needs to be done, regardless of how tedious it is.

I think many users (like myself) hate the cheating going on and would love to be a part of the system trying to remove cheaters. So, I came up with something that could greatly benefit codeforces and participants. Here's the idea: open up a volunteer system for "out-of-competition" participants, who can assist in the cheater banning procedure and ease the admins load on doing the same. I mean, I'm sure there are people like me willing to sit around for some hours after the rounds and report these cheaters. Maybe the admins could contract people to look at some disjoint portions of the standings and report the users they found fishy. (This is just one way. Also this is not trivial, sometimes users submit plagiarized codes in different languages 4 or 5 at a time). Of course, this initiative would be volunteer work for the good of the community, so that we can oust these cheaters from our community. I know it may not be a big change, but it is not worse, is it? (Exchange argument)

It is true that these volunteers would need to be highly trusted and largely unbiased. That's why it may be beneficial to have a "tree-like" structure to the reporting process. The lower level volunteers could remove the very "obvious" cheaters (Like this one) and only the very debatable ones could be sent to the ancestors in the tree to help reduce the banning load on admins and help some of us contribute to the community. It really deserves it.

I'm just throwing this idea around and I'm not sure what the community thinks of this, if you're not a cheater, please write below and tell me what you think. If you're cheater, please get a conscience. Maybe it's not that good an idea, in that case I will delete this blog soon. It's too long blog anyways.

I'm tagging the admins and I'm sorry for that :( I hope you receive this message. MikeMirzayanov, geranazavr555, Una_Shem and KAN. Much love and appreciation to you.

UPD: It's been almost 2 months since this post. The number of cheaters is growing unboundedly, and I think it's time that something should be done, cheaters are now solving upto D2E, that certainly doesn't motivate me to participate. I was hoping this cheating phase would come to an end soon, but its becoming worse and worse. Do we really want our beloved Codeforces to become the home of cheaters? Think about this when you have a moment.

Full text and comments »

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

By larush, history, 13 months ago, In English

Hello

So I was solving this problem (here), and a hashing-based solution seemed obvious to me. It is enough to look at the hash of the changed substring and get the final hash of the modified string using the prefix and suffix. I do not know much about hashing, just a little about polynomial (or rolling) hash. But it seems that my hash isn't safe enough. I tried a few things, but with no luck:

Spoiler

I used the standard primes M = 1e9+9 and p = 31 initially, as I learned from cp-algo. I have no clue what I'm doing wrong.

I hope someone could assist me in this and help me understand hashing a little better. Cheers!

off by one

Full text and comments »

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