Rating changes for last rounds are temporarily rolled back. They will be returned soon. ×

Nerevar's blog

By Nerevar, 15 years ago, In Russian
В одном из обсуждений зашла речь про использование на соревнованиях prewritten code (части кода, которые были написаны до начала соревнования и копируются в код решения). К сожалению, имеют место и другие вещи, которые справедливо можно назвать читерством и надо порицать. Не знаю, будет ли в правилах Codeforces что-либо сказано на этот счет, но по-моему это стоит обсудить.

На разных соревнованиях к использованию prewritten code относятся по-разному. В соревнованиях ACM ICPC это, естественно, запрещено. Однако замечу, что ACM ICPC состоит из онсайт-соревнований, поэтому проконтролировать соблюдение этого правила элементарно. Проблема с применением этого правила возникает на онлайн-соревнованиях. На наиболее известных соревнованиях (TopCoder и GCJ) к этому подходят просто: использование prewritten code разрешено. Есть, к примеру, соревнования snarknews, проводимые при поддержке журнала Мир ПК (pcworld.snarknews.info ). На них использование prewritten code строжайшим образом запрещено. Я совершенно уверен, что огромное количество участников этих соревнований в той или иной степени нарушает это правило, однако случаи, когда кто-либо за это наказывался, единичны. В одной из таких ситуаций человек отправил солидное по размеру решение через пару минут после начала соревнования, т.е. только полнейшая очевидность нарушения стала причиной дисквалификации. Олег Христенко, помнится, тогда на сайте писал, что, мол, поскольку заявки на мировой рекорд по скорости набора кода подано не было, то человек использовал prewritten code.

На соревнованиях snarknews характерно применение еще одного "запрещенного приема". Дело в том, что задачи для этих соревнований зачастую не оригинальные, а целиком берутся с уже прошедших зарубежных соревнований. Соответственно, при наличии навыков поиска в интернете можно найти и тесты, и авторские решения. Удивительно, но находились люди, которые просто отсылали авторские решения. Опять же в силу очевидности нарушения их постигало наказание. Но к использованию тестов к задаче и авторских решений можно подходить и с большей осторожностью...

Но это все мелочи. Эти нарушения "закладываются" в не самой удачной, на мой взляд, концепции конкретных соревнований. Для того, чтобы таких нарушений не было, достаточно 1) разрешить использование prewritten code и 2) готовить для соревнований оригигальные задачи.

А теперь о более серьезной вещи, которая может случиться на любых онлайн-соревнованиях. Речь об обмене кодом между участниками. Это самое серьезное нарушение, пункт о котором есть в правилах практически каждого соревнования. За это грозят пожизненной дисквалификацией и прочими карами. И хочется верить организаторам, что они действительно способны покарать читеров. Но насчет этого есть сомнения. И корень этих сомнений в том, что совершенно непонятно, как это проконтролировать. Кому-то может показаться, что это совсем просто: надо глазом (или программно) сравнить решения и сделать вывод, имела ли место передача кода. Не работает. Расскажу один случай. Дело в том, что меня хотели дисквалифицировать с Google Code Jam 2009 по подозрению в таком читерстве. Об этом можно почитать здесь . Обошлось:))

Тогда я в первый раз задумался, а как же просто, грамотно и эффективно бороться с подобными нарушениями правил? Какие у вас есть идеи? Какие еще разновидности читерства на онлайн-соревнованиях вы знаете? Сталкивались ли вы когда-нибудь с такими случаями? Были ли виновные наказаны?
  • Vote: I like it
  • +12
  • Vote: I do not like it