Hello, Codeforces! A month ago I wrote my blog about cheaters. Under that blog, a number of suggestions have accumulated, and I have accumulated a number of interesting ideas that could be applied to sabotage a group of cheaters.
It's worth noting that I've often seen comments along the lines of:
Well, doing what Ari suggested wasn't really what I wanted to do, but it was worth checking out what would happen if the wrong decisions were sent. I asked a user what would happen if I sent the wrong solutions to cheaters. He told me that a friend of his had done this before and that he was quickly debunked.
I wondered whether I could cheat without getting caught. But for this test, I had to do something. As you may remember from the last blog, I had already been featured in various cheater groups. So I needed an assistant to correspond with cheaters instead of me. That helper turned out to be Dmi34. Thanks a lot to him, without him this blog wouldn't have come out! We sat on Discord and I told him what to do. He also helped me with writing code, but more on that later. By the way, don't scold him for his knowledge of English. His first language is Russian, after all.
My first idea was to create a group on KF and invite all cheaters there. Then I decided, that it's not a good idea. That's because it's almost impossible to get cheaters into a group on KF because they would probably realize that it would be a bad idea to leak their nickname. Yes, and how to lure them there? They obviously don't need training and training tasks.
So, I decided to stop at dropping the wrong decisions. Since I had been told that it could not be done, I wondered: why could it not be done? As it seemed to me, I found the answer. It was that the cheaters couldn't be sure that they were being tossed the right solution. So we did the following.
Dmi34 started to turn in the problems in the round (don't worry, he's not a ranked participant since he's a master candidate), he turned in problems A, B, D and E1. After that, we decided to do wrong solutions to problems D and E2. But we had to do it very carefully, because it was impossible to give them even the slightest hint about the solution. Then we did the following: I wrote the wrong solution for D, which also takes TL (although cheaters often don't understand the difference between the $$$O(n \cdot log(n))$$$ and $$$O(n^2)$$$ solutions). And Dmi34 wrote a brute-force solution on E2, which obviously didn't work.
Links to these codes, they will help you catch cheaters:
So, Dmi34 wrote in the chat room:
And a wave of cheaters went down! Everyone wanted to know the solutions! We made them wait for a while, and then we started sending them these solutions after all. Here are the funniest and most interesting screenshots of their requests.
We even had two people write to us asking for help with their admissions tests! I'll show you screenshots of one of them.
They soon started to suspect something, but we dispelled their doubts with a screenshot: the rectangle is green, my solution works, look for a bug in yourself.
By the way, the cheaters took quite a while to respond. Apparently this is because they were changing the codes to avoid getting caught by anti-plagiarism. However, we still forced them to throw our code unchanged:
Soon some cheater wrote that he had a solution to the C problem. We emailed him that we wanted it, but he didn't reply to us. Soon we still find out how much the solution to the problem costs.
Also, some cheater wrote to us, asking us to exchange the solution to problem C for problem E2. To my deepest shame (sarcasm), we agreed, and dropped him the wrong code, and got his code in return.
Here's his solution. By the way, it doesn't seem to work:
After having a lot of fun, we decided to admit that they were just being trolled, and threw them funny messages. I thought they would react to it, but almost everyone was cool with it. Amazing calm!
What's funny, Dmi34 kept getting messages asking him to discount the solutions! Didn't it get to them even after reporting that they were being trolled? It feels like they just don't read the conversation!
The funniest cheater we have found:
Next, I personally joined another group with cheaters. I don't want to advertise them, but their admin wrote a comment under my last blog, you can check it out if you're interested. To my surprise, they... Really banned from texting during the contest! As soon as I joined, the bot wrote a message saying that Wind_Eagle had joined the chat... And I immediately (!) got a message from some cheater who offered me to buy the solution to his problem C. I asked how much the solution cost. So, now, without looking in the spoiler, try to guess how much it costs, and then stop by and check yourself.
I haggled for decency. When he said he was ready to sell, I wanted to write that I didn't need it, because I supposedly just thought up the solution to the problem. But he texted me his wallet number. I will not show it, I do not remember it and his number deleted, because it is too much. However, the cheater himself, I put him on blacklist so he wouldn't write to me again.
Speaking of cost. Remember that group that asked for help with the test? Well, helping on such a test for admission to the company costs a mystical <<200>> (I suspect rupees).
Now it's worth telling about my correspondence with the admin of this group. Why tell me about it though, read it for yourself.
So, what can be learned from this blog? First of all, cheater catching enthusiasts — your turn! You can see the codes I sent them, and if you want, you can look for cheaters. Second, I showed you how much the solution costs and how actively they sell. And third, I showed that the tests for joining the company are also being bought and sold, which was particularly disappointing to me.
So what conclusion can be drawn from all of this? This. Cheating — it's not just cheating, it's also a business! So, like any semi-legal business, it is extremely difficult to eradicate.
P.S. Dear cheaters, please forgive me for the inconvenience! I did not want to hurt you too much, in the end, the rating you get back for a couple of contests. All our wrong decisions you got as quickly and for free as possible. If I caused you any inconvenience, please forgive me! I won't do it again!