Привет, Codeforces! Не так давно прошел мой второй раунд, Codeforces #741 (Div. 2). Перед его началом, я задумался: ведь наверняка на моем раунде, как и на любом другом, процветает читерство? И я решил сделать кое-что необычное.
Как известно из одного блога о читерах, искать telegram/youtube каналы с читерами не составляет никакого труда. И я решил найти парочку и вступить в них...
Итак, первая telegram-группа, которую я нашел, это [ссылки пока нет]. В ней было не так много читеров, но все же они были, вот пример:
Я вступил в эту telegram-группу, и состоялся содержательный диалог примерно такого плана:
Это может показаться невероятным, но админ группы действительно запретил участникам переписываться на время соревнования! Значит, я уже оказал хоть какое-то влияние на уровень читерства во время моего контеста. Кстати, в этом канале опубликовали парочку видео-разборов на мои задачи 1562A, 1562B и 1562C. Довольно неплохие, между прочим.
Второй группой, которой я нашел, вероятнее всего, оказалась крупнейшая группа с читерами в telegram в принципе: [ссылки пока нет]. Я повторил процедуру:
Однако, в этой группе мое появление проигнорировали! И продолжили, как ни в чем не бывало, обмениваться решениями в личных сообщениях или где-то в discord:
Чуть позже даже в наглую написали половину решения для задачи 1562A:
Кое-какой известный пользователь пришел мне на помощь:
Как видите, практика обмена решениями крайне популярна в читерской среде (торговля из серии дай мне B, а я дам тебе C):
Однако, есть и читеры, которые при этом еще и мошенники! Видимо, ему решение скинули, а он в ответ не скинул:
И тут случилось кое-что крайне интересное. Мне стали писать в личные сообщения... сами читеры! И разоблачать других читеров! Видимо, у них абсолютно не сплоченный коллектив.
Один человек (я ему очень признателен), скинул мне парочку youtube-каналов, где были читеры. На один из них я зашел посреди контеста и тоже написал в комментарии, но об этом расскажу позже. Кстати, на одном из каналов мы можем видеть никнейм автора. Чуть позже, когда речь пойдет про youtube-каналы, я покажу, кто это был, и, надеюсь, его забанят.
Итак, вот, что мне написали про youtube-каналы:
Кто-то даже не мог поверить, что я реально автор контеста:
К сожалению, у меня не сохранилась самая интересная переписка, поскольку я заблокировал моего собеседника за прямые оскорбления, но если вкратце, там был примерно такой порядок сообщений:
- Привет, ты реально Wind_Eagle?
- Да, это реально я))
- Крутой контест, бро, но слишком сложный для серого.
Через 30 минут
- Твой контест хорош, но задача В странный мусор.
- Почему?
- Потому что она сложная. Если будешь делать следующий контест, не давай такие плохие задачи.
Через 30 минут
- Ты не Wind_Eagle!
- Почему?
- Потому, что автор контеста будет занят во время его проведения!
- Я занят, но могу быть свободен, когда не так много вопросов.
- Нет, ты не Wind_Eagle!
- Почему?
- Потому, что ты [цензура] идиот!
И потом я его кинул в ЧС.
Третьей, и последней группой, оказалась относительно небольшая группа читеров [ссылки пока нет]. Между прочим, эту группу мне в ЛС подсказал один из читеров из предыдущих двух групп. Я повторил процедуру и здесь. Состоялась неожиданная встреча с фейком известного пользователя, а также мне не поверили, что я Wind_Eagle:
Вообще, мне было интересно наблюдать за тем, как люди отказывались верить, что я реально автор контеста. Они кидали веселые смайлики, шутили, но никак не могли признать этого. Даже когда я кинул скрин, на котором было видно, что я нахожусь в своем аккаунте и могу редактировать анонс, мне все равно не поверили, сказав, что я подредактировал HTML-страничку. Так вот, дорогие читеры! Я настоящий! :)
Теперь поговорим про youtube-каналы. Я нашел таких два: [ссылки пока нет] и [ссылки пока нет]. К сожалению, второй канал уже закончил трансляцию, так что я оставил ему веселый комментарий:
Кстати, вот вам скрин с его экрана:
Надеюсь, что он будет забанен.
С первого канала, к сожалению, у меня скринов нет. Могу лишь сказать, что я написал туда сообщение: "Привет, я Wind_Eagle. Останови стрим, или будешь забанен." Между прочим, в комментариях, в отличие от telegram, задачи обсуждались гораздо более открыто, обменивались кодами и идеями там во всеуслышание.
Теперь немного о приятном. Я получил немало сообщений от пользователей этих читерских telegram-групп, в которых они... говорят спасибо за контест! Я выбрал несколько лучших:
Что хочется сказать в качестве вывода? Все очень печально, честно говоря. Читеров не просто много. Не просто очень много. Их слишком много. Я боюсь, что с читерством на КФе можно бороться только одним путем: закрывать подобные telegram/youtube каналы. Иначе с этой проблемой просто не справиться.
В заключение хочу ответить на несколько вопросов заранее:
Q: А почему ты не помешал читерам заниматься своими грязными делами?!
A: А как я бы им помешал? Скинул неправильный код? Один читер бы его проверил и написал бы об этом. Неправильные коды частенько появляются в таких группах.
Q: У тебя что, есть время во время контеста заниматься такой ерундой?
A: Нуу, обычно авторы отвечают на вопросы. Но когда вопросов было немного, я занимался переписками. Прошу прощения, если кто-то из-за меня долго ждал ответа на вопрос.
P.S. Как вы думаете, стоит ли оставить ссылки на ресурсы читеров? Я почитаю комментарии, и если эту идею поддержат, опубликую ссылки.
it's probably the best blog about cheaters ever)
As a contest author, you could prepare a correct, but very messy solution for problem C. Rings with a lot of redundant branches and unnecessary special cases. In such a way, that its generated output is very unique and unlikely to match the output of any solution of any honest participant. Such unique output can be used to automatically flag solutions as "AC, but disqualified because of plagiarism". This is most likely not supported now, but CF could theoretically implement this feature. Alternatively, such unique output could be rejected by system tests as WA, but this is very controversial because the output is technically correct.
I also had an older comment about reliably identifying cheaters, so that they have no plausible deniability: https://codeforces.me/blog/entry/8790?#comment-808194
Wanted to know this As a contest author do you have any special power regarding the plagiarism check for that round?
No, I don't have any special power regarding the plagiarism check.
They will just make new groups.
Codechef displays on the profile if a user had cheated in a contest(back when it actually used to check for plagiarism) and still it has no effect. I think cp sites really need to ban/perma-ban/ (ip-ban?) such users, -275 points isnt enough.
Cheaters usually have low rating, so creating a new account is no problem for them, also VPN is so common that I think even cheaters can think of using it.
You did a lot of hardwork from setting the contest, to even joining the cheats to curb it.
Hats off to you brother, it is an extra step for the cf community.
Now, I know how gennady manages to top every contest
Unrelated question, is Secret_Eagle (author of blog) your alt? Your handles are similar and you have the same country and organization.
I don't mean to be that guy, but there's more than enough evidence to claim they are the same person, yet nobody is talking about it, since it's a reputable coder. We've witnessed C137 get banned recently for having multiple accounts and everyone claimed it was okay because his "contribution in form of blogs and hosting one contest was meaningless". What's the difference with any other coder or Wind_Eagle?
Let's just quickly go over a couple of facts both Secret_Eagle and Wind_Eagle have in common:
Both 6 years old
First submission in November 2015
Both using FPC in the beginning
Both from the same organization
Both from the same country
No common contests between them
Very similar coding style (does not prove anything, but just makes the statement stronger)
Similar opinions about cheaters (does not prove anything but just makes the statement stronger)
gepardo refers to his younger brother as Anton in his contest announcement 4 years ago, while Secret_Eagle makes comment about it being him — Wind_Eagle's profile says his name is Anton
Both have a history of being the early comments in the brother's blogs
We can never say for sure whether they are the same person, but this gives a great dose of suspicion to almost be sure these things aren't a coincidence. Again, it's possible that they are just good friends, with same coach, etc, that thought of making an internal joke, but how likely is this in reality?
This is not to say that Wind_Eagle deserves to be banned, but at least don't pretend like it's okay to break the rules (in this case owning multiple accounts) for some, while it's not for the others.
It's an interesting question whether 1 smurfer is actually doing less harm to the other Div2/Div3 contest participants than 1 plagiarist. Maybe that's a good topic for another blog. As for C137, he wasn't just a typical smurfer with multiple accounts, but participated in the same contests with both accounts simultaneously to gain unfair advantage for his main account.
Ahaha, no, I guess this situation speaks by self as " it is totally cool to have alt smurf for not important contests, nobody blame you"
I wonder is it possible to make a low-level problem such that there is a solution that pass pretests but not systests — because of a weakness very unlikely made by a contestant and is difficult to be fixed. The contest setter can infiltrate the groups and share this faulty solution.
Would such result be worth the efforts? It's like just a minor inconvenience for cheaters with no extra risk for them to be caught and banned.
Wouldn't there be many false positives, then?
Only plagiarism will be penalised.
There may be people who fail systests with their own solutions and I hope this will be a very small minority. They are not penalised for cheating.
I am thinking of problems like https://codeforces.me/contest/1536/problem/A where the top participants may produce a wrong solution because they overcomplicate their solution.
"D1 is segment tree", "A is binary search"
By the way, is there really a way to solve D1 using segment tree?
Lol I did use ST in contest. Idk why but when I read the question it stuck in my mind that there will be updates. Submission: (https://codeforces.me/contest/1562/submission/127117365)
Hilarious that everyone there is only interested in A, B and C. Cheating can only get you so far.
I have seen an interest in D1 once :)
This is a cool blog, infiltrating cheater Telegrrams is fun. One tactic that I think is effective in some cases is to flood the group with a shitton of hentai, this derails discussion and makes it hard to use the group.
This idea is so Ariginal.
Yeah because that would make us hard too.
Fun fact:codeforces is sponsored by telegram and cheaters use telegram groups for violating codeforces rules
Next time, cheaters will flood you questions to keep you busy during contest.
As you joined many of these cheating groups, in which Question did you see the most cheating? I am presuming it would be B or C.
I think you are right, it is B and C. But chetaing in A also was rather big.
I am the admin of that second telegram group, that group is just for post contest discussions, so I turn of messaging whenever the contest if live!!
I can't believe that you were the one Wind_Eagle , who messaged in the group that day, I am very glad to see you in my group.
Also, I am very happy that you liked my editorial videos!!
Thank You Very Much!! Abhinav Awasthi Codenav Community
You just gave me another reason to increase my rating. And I really really liked your problems in that contest.
Thank you for participating in my contest!
Nice read, A for effort, but very sad that there are so many cheaters :(
Lmao someone even named their account after Gennady....
Lmao aren't you a cheater too, I remember in last to last contest, you were bashed by people in comments of the announcement xD, you still cheated last round though, nice comments.
Lol a cheater is commenting blog about cheaters... How ironic...