Идея возможности взлома во время, пока другие участники ещё решают задачи, мне кажется внове.
На topcoder это мероприятие вынесено в отдельную фазу, когда отсылать задачи уже нельзя.
А тут я сразу задумался. Уж наверняка если можно видеть чужие решения во время соревнования, то либо никто не догадался использовать это для читинга (с двумя логинами на одного человека или с пару "компаньонов") - либо же 21-й век накладывает свой отпечаток на моральные качества людей и все, хотя и догадались, но никто, безусловно, не опустился до такого жульничества...
Прав ли я, полагая, что всё действительно безоблачно - или существуют уже известные прецеденты на эту тему? Если прецеденты есть - как Вы полагаете - лучше было бы выделить взломы в отдельную фазу, после фазы решения - или нет.
(я не имею в виду что topcoder добился высот в борьбе с мошенничеством - там свои проблемы есть, но от этого не лучше, ведь так?)
Хотя не могу не признать что мне пока от возможности "взлома" только позитив - благодаря тому что какой-то доброжелатель нашёл своевременно ошибку в моём решении, я (поначалу, конечно, вытаращив от удивления глаза) подумал и смог догадаться где допустил (идиотский, спору нет) косяк... А впрочем - как Вы считаете - такая возможность, увидеть что тебя взломали - и исправиться - она накладывает ли положительный или отрицательный эффект на "корректность" соревнования?
Претесты включают тесткейсы из задания в том числе, так что хотя они в какой-то мере защищают... но далеко не 100%, так?
Не кажется ли тебе самому как минимум странным, что ресурс, который работает уже больше года, где собираются в основном люди "в теме" про контесты и как в них участвовать, по-твоему обладает таким весьма очевидным и критичным изъяном и при этом этого не видят все остальные?
В любой системе можно найти "изъян", но тут ИМХО люди участвуют в контестах, чтобы заниматься любимым делом - решением задач, а не читерить. Это просто самообман из-за которого ты потом просто сливаешь все контесты, где чужие коды не доступны. Ты хотел бы тратить время на самообман? Я - нет.
Да и какая собственно разница - ну появится кучка придурков, которые будут читерить, но это врят ли как то существенно скажется на таблице рейтинга.
Однако читеры существуют, и притом серьёзные ребята - я здесь видел в списках как минимум одного, который, впрочем, думаю на текущий момент уже не увлекается этими детскими шалостями т.к. вообще-то он весьма сильный спортсмен в нашей области. Вероятно он и сам теперь свои былые деяния (на топкодере) со смехом вспоминает.
Каков результат читерства? Чаще всего со временем их всё равно находят. Однако возни для администрации в первую очередь с этим связано немеряно - ну и вопросов - пересчитывать ли рейтинги и т.п.
Но распределение по комнатам напрочь убивает эту возможность.
1. Послал заглушку, способную пройти претесты
2. Залочил
3. Посмотрел решение лидера комнаты (возможно и другой)
4. Скопировал решение на основной аккаунт
1) Не всегда можно загнать задачу с плохой асимптотикой, т.к. претесты частенько содержат большие тесты, плюс надо еще суметь написать верное решение. Обычно проще решить задачу сразу и полностью.
2) Переписывание решения другого участника займет 20-30 минут, а это серьезная потеря баллов. Опять же, проще написать самому. Плюс ко всему, тот самый сильный участник может где-нибудь набажить.
Да и кому это надо? Школоте хвастаться перед своими собратьями, что-ли?
Я говорю не о том, "кому это надо" или "насколько успешным может быть такой читинг". Я говорю о том, что для администрации (и, вероятно, ряда участников) возможные появления такого читерства будут связаны с хлопотами, противными разбирательствами и ненужной вознёй:
- админам нужно будет пытаться бороться с читерами, сравнивать исходники, следить за историей участия тех или иных подозрительных лиц (необходимость вызывается тем что иногда могут проходить "зачётные" соревнования, где читинг нужно свести к минимуму);
- для соревнующихся это может вылиться в запоздалые корректировки баллов (это малое зло) и возможные несправедливые подозрения (например при использовании эвристических алгоритмов для проверки исходников).
Выделение "взломов" в отдельную фазу сразу решило бы эту проблему и выгодно оттенило codeforces в сравнении с topcoder (из-за принципа начисления очков от времени открытия задачи на последнем), как я полагаю...
Я говорю о проблемах которые читерство приносит не читерам и админам, а все твердят о выгоде, которую читерство (не) приносит читерам... ;-)
Это примерно как:
- самоубийцы приносят много неудобств дворникам, врачам и милиции;
- какая чепуха, кто будет этим заниматься, ведь самоубийцы только вредят себе!
Но пусть читер сжульничал, скажем в последнем квалификационном раунде Яндекс.Алгоритм и, допустим, попал на N-10-е место из N проходных. В следующих раундах он ессно срезался, но это уже и не важно.
Через некоторое время факт читерства открывается и результаты читера аннулируются администрацией. И тут человек занявлий на том квалификационном раунде N+1-е место говорит "Ребята, блин, так я ж должен был пройти вместо него! Может я вообще новый ACRush - а меня так обломили, причём не по моей вине!" - а что делать, уже может и финал давно миновал и тут ничего не переиграешь.
Естественно что этому N+1-му можно сказать, мол, чтоб таких проблем не было занимай хотя бы N/2-е место и проходи в следующий уровень наверняка. Но это довольно неуклюжая отмаза.
С точки зрения логики это правильно. С точки зрения социальной / этической это конечно неадекватно.
Боюсь если будут такие рекламации - и тем более, такие ответы - то всё это как-то дурно на репутацию соревнований повлияет. И именно поэтому таких ситуаций лучше бы не допустить...
Для сильных мира сего есть другая возможность - написать автоматическую выдиралку решений однокомнатцев (а, если та флэшка загружает не текст, а картинку - то и распознавалку через API какого-нибудь OCR, но думаю всё куда проще... иначе был бы не flash), тестирование их в сравнении со своим решением и даже автоматический сабмит "взлома". После этого можно решать задачки, а не мониторить комнату.
Но идея хотя бы выдиралки возникла у меня не на пустом месте, а когда я просматривал решения без подсветки синтаксиса в окошке 100x200 пикселей, которое никак нельзя растянуть на мой 24-х дюймовый монитор, которое только скролить, и наблюдать как в это время Опера выделяет весь текст синим, и вспоминал глюки под Linux x64 убожества под названием flash. Ну и потом человека, который проанализировав исходник нашел что он неверный, заставляют опять его сравнивать перед сабмитом с тем, что он анализировал минуту назад (мой единственный взлом оказался неудавшимся, т.к. за это время произошёл пересабмит решения). Я люблю автоматизацию (как и любой другой человек, работающий в сфере IT). И если задача допускает автоматизацию, то зачем запрещать это этическими нормами? Тем более программисту?
Странно. Сколько не пытался скопировать код участника (чтобы протестировать его на различных наборах входных данных) ничего не получалось. Если код А+Б, то его можно конечно переписать, а если это большая задача и в ней куча шаблонов, а ты ещё сделал код, который проходит претесты, то думю это не вариант. Можно разумеется увидеть решение и понять где ты ошибаешься, но сразу получается, что у тебя 2 аккаунта, где задачи сдаются одновременно, при этом в одном все задачи закрыты, а в другом наоборот. Думаю лишние баллы рейтинга или цвета этого не стоят. Удовольствие от решения задачи, вот ради чего мы все здесь....
P.S.
Если только у меня код не копируется, то это странно :)))
Выскажу мысль о том, что неплохо было бы иметь возможность взламывать решения не имея собственного, но заблокировав эту задачу себе. Это дает возможность читерства, если такое разрешать с самого начала контеста, но если предположить что читеров не существует, то вполне интересная вещь. Администрация сайта сознательно разделяют термины "взлом" и "челенж", и наверное "взлом фаза" в конце контеста будет как-то сильно походить на что-то уже существующе на других сайтах (где-бы такое могло быть?). Позицию администрации разделяю, мы же не хотим клона другого сайта, мы хотим нечто своё новое, интересное. Поразмыслите над этим, если будут интересные идеи может наконец уберется греческая буква из названий раундов.
Яндекс.Алгоритм 2011 Квалификация 2, 1 место, +13
Codeforces Beta Round #72 (Div. 1 Only), 1 место, +33
Яндекс.Алгоритм 2011 Раунд 1, 1 место, +39
Яндекс.Алгоритм 2011 Раунд 2, 2 место, +38
У меня нет сомнений, что первый турнир по составу был самый слабый, а последний самый сильный. Так что все логично, мне кажется.
Часть сильных участников учавствовали в 1-ой квалификации.
Не все сильнейшие участвовали. В последнем соревновании «красных» было почти в 2 раза больше, чем в первом. И, главное, важно наличие самых сильных.
Представьте, что участников 2, в одном случае с рейтингами 2500, 2500, во втором – с 2500, 2100. Ожидаемое место для участника с 2500 в первом случае - 1.5, во втором около 1.1. Разница между rank и seed в первом случае в 5 раз больше, чем во втором. А от этой разницы как-то пересчитывается рейтинг.
На TC аналогичная картина наблюдается. Петру значительно легче повысить свой рейтинг, если участвует ACRush =). А без него вот даже второе место на последнем SRM рейтинг понизило.
Хотя может быть я чего-то не понимаю.
Т.е. у чела было бы два рейтинга - грубо говоря один программистский (за решение задач) другой тестерский (ведь взлом - это тестирование белого ящика).
Если мы не хотим клона сайта то на мой взгляд наоборот лучше было "взлом" не использовать вообще. Это ж топкодерская фишка хоть и переиначенная самую малость. Разница в том что здесь называется "взлом" а не "челлендж" и разрешается раньше - весьма несущественна.
Больше разница была бы если бы соревнования проводились по принципу ACM - без взломов и с возможностью отослать решение на полное тестирование. Больше "программистских" скиллов было бы задействовано.
Конечно существует возможность сделать соревнования разных типов. Скажем через один - со взломами и без. Кто в каких хочет, в таких и участвует. Но скорее всего опять пришлось бы отдельные рейтинги считать...
(хотя против топкодера ничего лично не имею, в целом мне там нравится - да и задачи несколько различаются по идеологии и стилю)
Желтый рейтинг мне не нужен, мне нужен красный. :-)
А если серьёзно, то затем же, зачем он и всем остальным(в том числе и перед друзьями хвастаться), к тому же схожая техника помогает и в ТСО.
Главный вопрос-то состоит в другом. Он, конечно, довольно интимный, но что Вам стоит, в конце концов, ответить, раз Вы всё равно под маской анонимности? На TCO Вы весьма навряд ли пройдёте, это как минимум очень сложно - провести оба аккаунта через пять отборочных раундов и ни разу не спалиться. Значит и денег Вы не получите. SRM'ы с призами тоже очень редко бывают. Получается, Вам, как и большинству, рейтинг нужен по большому счёту только для поднятия ЧСВ (это святое!). Но как?! Неужели оно действительно поднимается, если Вы понимаете, что всех кругом обманываете? А если хотите гордиться не мастерством программирования, а хитрожопостью, то ведь ну разве это серьёзно - так читерить на TopCoder? это вроде мелко как-то, тут много ума не требуется...
на ТСО конечго же далеко не пройти, но почему бы и не попытаться? За три квалификации два раза пройти можно запросто, потом загубив один акк, пройти в раунд 2. А там уже слиться.
Очень просто было пройти много раз на RCC, например. Там под конец и фейки для сдачи не потребовались.(Главное там было хорошо замаскировать сданный код, конечно).
Я тоже сначала не думал, что можно радоваться фейковому результату, но ничего, привык. :-)
На соревнованиях же по программированию админам читеров ловить на просторах Интернета и применять к ним аналогичные методы на порядки сложнее. А жаль.
Если что, нет, показом того видео скорее можно было, наоборот, отучить рассматривать воровство в супермаркетах как способ экономии стипендии.
С другой стороны и там случается что нормальных покупателей принимают за воров и конечно такие случаи кучу неудобств приносят и покупателям и работникам.
Так что будущее вообще за интернет-магазинами, в т.ч. для еды ;-)
То есть, каждый участник перед соревнованием получает ориентир: место, при котором его рейтинг во всяком случае не уменьшится.
Это придаст определенную специфику контестов CF, и у участников появится дополнительная интересная мотивация.
Понятно, что в конце ещё будет финальное тестирование...
Ой, это был ответ forestу.
Все зависит от рейтинга других участников. Вы можете быть 100-м в рейтинге соревнования, но, в конкретном случае, существенно уменьшить или увеличить этот рейтинг, заняв именно 100-е место.
Я не специалист в рейтинге Эло, но мне кажется, что зависимость места в рейтинге и ожидаемого места вполне такая линейная.
Это я просто смотрю на проблему с точки зрения именно верхушки рейтинга. Там действительно важно. Лидер, например, для сохранения рейтинга должен быть не ниже 3-го места, второй - 6-го и т.п. Знать это заранее - интересно.
Ну, а 195-205, может не так важно.
P.S. И совершенно согласен с теми, кто считает, что упорядочения по рейтингу зарегистрировавшихся участников очень не хватает.
P.S. А, в принципе, вообще мысль хорошая. Что мы все к разработчикам обращаемся, здесь же программисты собрались. Хотя бы на отображение данных, каждый свои вопросы может сам решить.