Добрый день!
Сегодня меня заинтересовал такой вот вопрос, а много ли программистов читерят на олимпиадах/контестах? Может кто-нибудь мог написать код, который "подглядывает" тесты к решениям? И какими методами жюри отлавливает читеров?
P.S. я понимаю, что читерство это плохо и все такое, но все таки прошу не минусовать тех кто будет отвечать! Спасибо
Я ещё раз повторю заезженную мысль, что на серьёзных контестах считерить всё равно нет возможности, поэтому читеря где-то на мелком уровне вы лишаете себя опыта и тренировки, не приобретая ничего взамен.
Это вы на онсайте фейсбука не были :) Там полностью открытый доступ в инет, и ни слова от организаторов про то, что нельзя пользоваться gtalk'ом/читать обсуждения на кодфорсес (пока их специально про это не спросили; но это в личной беседе, публичного анонса так не было). Так что на некоторых серьёзных соревнованиях возможностей хоть отбавляй (другое дело, что те, кто туда прошли, ими не пользуются).
Upd. А ещё некоторые (я бы даже сказал — многие) читерят на Opencup'е, когда гуглят и копипастят prewritten code.
На Opencup вообще очень странные правила. Я могу принести на раунд полностью распечатанный e-maxx, страниц пятьсот печатного текста, и перенабрать с листочка, но не могу распечатать нужную мне страницу этой пдфки и перенабрать с нее. WWF просто нервно курит.
Upd. Да, еще был вопрос snark-у, можно ли использовать шаблон на CPR#2, и ответ был "можно".
На SN*S prewritten код использовать можно (как минимум потому, что нет возможности проконтролировать соблюдение соответствующего правила).
На OpenCup же правила про prewritten код были введены по аналогии с полуфиналом и финалом ACM ICPC в расчёте на то, что соблюдение этих правил будет обеспечиваться координаторами секторов.
Впрочем, скорее всего, с нового сезона правило про prewritten код будет отменено.
Планируются и другие изменения в правилах (в частности, отмена лимита на выступления в Division 2: если кто-то хочет быть "самым крутым в песочнице" — его право; хотя, начиная с какого-то уровня, это не добавляет ни уровня подготовки, ни репутации).
А нельзя ли вообще упразднить обязательность секторов и координаторов? Ну то есть например кроме секторов чтобы можно было получать личные логины, по которым можно участвовать по интернету не приходя ни в какой сектор.
Схема OpenCup всё же "секторная" — идея в том, чтобы команды писали в режиме контеста/тренировки, а не в режиме домашнего тура.
Как вариант возможен в порядке исключения допуск для участия "в автономных секторах" для пост-студенческих ("профессиональных") команд.
Раз уж затронули тему изменений в правилах OpenCup — планируется официальный регламент по дистанционному участию? Потому что уже многие команды пишут дистанционно и все немного по-разному понимают, что можно, а что нельзя.
Дистанционное участие делается "в порядке исключения". Его порядок определяется техническими условиями и так далее, так что прописать это имхо нереалистично. Рамочное правило — пишет только одна сторона.
Две стороны по очереди не могут?
Мы, например, использовали такую схему:
- (возглас в скайпе) дайте мне компьютер!
- (ответ) компьютер твой
- (можно писать)
Тот, у кого "нет компьютера" с него только читал условия, собственный код и говорил (смотрел скрин другого компа) по скайпу.
Вроде бы, так получается честно (на самом деле, даже немного нечестно по отношению к нам — например, достаточно долго перекидывать код с одного компа на другой — но это "проблемы индейцев").
При этом рамочное правило не соблюдается, на что я и намекаю. Хотя вроде бы выглядит честно.
Хотя вышеописанная схема и является совершенно честной, но при такой схеме возникает проблема контроля, в то время как при схеме "пишет только одна сторона" процесс вполне контролируется координатором сектора с "пишущей" стороны.
Как вариант предлагается следующее: "протокол взаимодействия участников согласуется с Техническим координатором в индивидуальном порядке".
P.S. Возможно, имеет смысл перенести дискуссию в другое место, это уж больно неподходящее...
Такая координация выглядит как-то ненадёжно. Можете попробовать кодить только на одном компе, к которому остальные коннектятся rdesktop'ом.
Ты представляешь как это будет тормозить? Впрочем конечно проблемы тех, кто так пишет.
По-моему, если разрешается дистанционное участие, то схема основанная на доверии к участникам вполне жизнеспособна.
Представляю, своими глазами видел, как такое работает :) (а если уж кодить в виме — то вообще никаких проблем не будет). По модулю jpeg-артифактов вполне юзабельно.
(доверие тут не к участникам, а к (координаторам секторов/тренерам)-участникам; впрочем, как правильно сказал snarknews, механизмы синхронизации лучше с ним лично обсудить).
Я время от времени пишу личные контесты через rdesktop — если на локальном компе нет, например, Java для арены...
Там, где интернет нормальный — тормоза при использовании Far, Firefox, TopCoder Arena не заметны.
Камешек в огород принят :) Дело в том, что во втором дивизионе кроме титула "лидера песочницы" есть ещё дешёвые десять очков за первое место. Кажется, их можно было бы просто отменить.
...И иногда при этом оказывается, что результата, показанного первым местом второго дивизиона на "общих" задачах, хватало бы на результат куда больший, чем 10 очков.
Да и при наличии хотя бы двух сравнимых команд в Division 2 10 очков оказываются вовсе не гарантированными. До диплома третьей степени добраться таким образом, конечно, можно. Но не выше... Так что эти 10 очков свою функцию выполняют.
Да, угадать сложно. Тем не менее, совершенно уверен, что очки нашей команды, набранные за последние пару лет, в первом дивизионе можно смело делить как минимум на два. Кроме того, первый дивизион часто страдает внезапным подмешиванием участников онсайта в таблицу результатов) Диплом третьей степени — это очень неплохо и, на мой взгляд, куда значительнее титула повелителя песочницы.
Ну, вот по новым правилам лимит на количество участий в Division 2 и снимается. Впрочем, он и так был в последнее время чисто номинальным — 60 очков, так что изменение вполне соответствует идее "убрать бездействующие правила".
Хочу сказать, что когда ты проводишь какой-то контест, так приятно, когда его решают и он нравится участникам. И так бесят те, кто начинает гавно всякое исполнять. Пришёл на контест — сиди решай, не хочешь решать, что вообще на контесте забыл? В клубешник на тусовку прямая дорога. (UPD. Ну или если просто прога не интересна — есть много ещё интересных занятий)
Короче, хоть поиск багов системы и интересная вещь, но с точки зрения жури, читеры бесят очень сильно.
Вроде это не круто / не true
Единственное нормальное читерство, которое я знаю — это предподсчет локально у себя на машине, но это как бы и не читерство.
Ну вот, началось то, чего я опасался — меня не так поняли! Ну ясен пень не тру и все такое, но вот например что-то слышал(но плохо помню, могу наврать) про то как чувак не знал какую-то конфигурацию сервера где проверяются решения, написал ассемблерную вставку и вуаля... и запихал таки код свой! красота=). Вот ^_^
Вообще-то этот пример — не читерство. Ассемблерной вставкой он мог ускорить какой-то фрагмент программы. Когда пишут какие-то оптимизации в коде программы, это не считается читерством. Читерством является намеренная дестабилизация работы системы, вроде попыток уронить сервер или создания мультиаккаунтов, с целью получить какое-либо преимущество.
Все было не совсем так. Я не знал пройдет ли решение по времени и написал на асме на всякий случай. Потом оказалось, что все писали такой же алгоритм, так что без асма оно тоже скорее всего бы прошло.
помню мы однажды давно решали какой то онсайт, а потом эти задачи появились в дорешке на опенкапе. очень хотелось дорешать одну задачу, поэтому попытались дорешать именно там. но случилось одно неудобство: на онсайте и опенкапе названия файлов были разные, а условий опенкапа у нас не было. а дорешать очень хотелось. поэтому мы на шарпе в решении написали сканирование текущей директории, находили там файл с расширением .in, из него читали, писали же в аналогичный файл с расширением .out. типа сработало:)
этакое читерство в благих целях
Такое бывает на всяких сборах, высокого и "неочень" уровня. (когда код копипастят)
Мне рассказывали байку что Соболевы на областной олимпиаде как-то "поломали" админский комп и у них были то ли все решения, то ли тесты. В итоге они все сдали, но не разумно(много за короткий период и их наказали)
Не сплетничать про мою команду!
Эммм, он вроде про Диму и Женю Соболевых =) или я чего-то не знаю и вы были с ними в команде?
Были :)
Напишите кто-то нормальную статью по алгоритмам, например по фенвику с примерани на джаджах), а то "душа" требует знаний!
Вот здесь есть про дерево Фенвика. А тут есть знания
спасибо, я же наверно не знаю этих ссылок, тролль!
Тролль? Нет вроде
ты уже мыслишь шаблоном, один и пунктов которого зайти на вики!
А чем не нравится описание на e-maxx? Разве что, четко не прописана применимость — либо операция над массивом элементов группы (G, op), либо над массивом элементов коммутативной полугруппы (G, op), но операция "a[i] = b" заменяется на "a[i] = a[i] op b", а "op на отрезке [L;R]" на "op на отрезке [1;R]".
Картинок не хватает.
Да, как на курсе алг. структур очень не хватало графической иллюстрации кольца многочленов над полем вычетов по модулю заданного неприводимого многочлена заданного поля.
Вряд ли дело в описании; про дерево Фенвика скорее "фигура речи": хороших статей про него не так уж мало.
В общем, вдруг (кому) пригодится. Есть статья А.Лахно (или она же в ином оформлении), есть статья на topcoder (на английском, но зато иллюстрированная:)). Есть краткие вики-конспекты ИТМО. Наконец, оригинальную статью П.Фенвика несложно найти в формате ps (здесь в pdf, cashed). Существует и список задач, хоть и небольшой, да и образцы реализаций посмотреть можно много где (например).
"Библиография" далеко не полная (сугубо личные предпочтения).
спасибо вам
Мне было бы интересно поподробнее услышать про читерство команды КБТУ на NEERC 2006, за которое их пожизненно дисквалифицировали. Есть кто хорошо осведомленный по этому поводу?
Если не изменяет память это обсуждалось и на форуме NEERC и на TTB...
В то время, когда это обсуждалось, я учился в седьмом классе, пользовался dial-up'ом и не знал, что такое СП :). А сейчас гуглинг на эту тему ничего содержащего вразумительную информацию, увы, не дает. Да, кстати, насчет года, когда события происходили, я ошибся, было все на NEERC 2006.
А что именно вас интересует? Они нагло (и тупо — единственный плюс в standings по Hard Life смотрелся очень своеобразно, особенно если учесть, что они сами не понимали, как её "решили") считерили, их дисквалифицировали. Или вам технические детали нужны? :)
По идее, интересны тут именно технические детали, про которые я кое-что слышал, но через "испорченный телефон".
Мне интересны технические детали — подкуп, компромат, захват заложников, баг в системе? Ну или какой-нибудь рассказ "от первого лица" с интригами и расследованием :)
Насколько я знаю — неаккуратное обращение с почтой представителя жюри, который поехал к ним
А мой испорченный телефон говорил о кейлоггере, поэтому в неаккуратности члена жюри тут сложно упрякать.
В случае аккуратности никакой keylogger не поможет, т.к. аккуратные люди (i.e. "параноики") используют двухэтапную авторизацию и меняют пароли хотя бы ежемесячно (но даже двухэтапной авторизации хватит). Не говоря уж о том, что не будут заходить в почту на чужом компе и никого не подпустят к своему :)
Это сейчас все умные со своим ноутом ездить и вбивать пароль только в него. Напомнить, сколько средних месячных зарплат стОит ноут сейчас и сколько стоил в 2006-м году?
С другой стороны — экранные клавиатуры тогда уже очень даже были. Но если комп типа как предоставляла типа как для работы местная часть организаторов — далеко не все пользуются такими неудобными параноидальными методами.
Хм, насколько я помню, ноуты тогда были не сильно дороже чем сейчас, процентов на 15 (правда, тогда не было нетбуков). Хотя в любом случае разговор не об этом :)
(Какими неудобными параноидальными методами, кстати? Двухэтапной авторизацией? Она офигенно удобна и очень полезна; не могу понять, каким образом люди без неё живут.)
Кстати, небольшой оффтоп: судя по всему узбекская сторона с 2006 года свои компы полностью не обновляла. Мой дешевый нетбук за 8 тысяч рублей и то намного мощнее того барахла, за которым казахстанским командам приходится писать полуфинал.
Даже хуже, чем на Codechef?
Я характеристики не смотрел, но эклипс на таких компах работает как черепаха. Плюс к этому там 15-дюймовые ЭЛТ-мониторы.