Я так понимаю, что во всех приличных регионах второй тур уже завершился (ну или как минимум должен был завершиться), тут все равно сейчас будет активное обсуждение задач — поэтому я думаю, что следующую историю уже можно запостить и здесь.
...Позавчера утром я сидел на открытии региональной олимпиады в Нижегородской области. Проводив участников решать задачи, я поехал домой. Поскольку с утра я наблюдал некоторые разногласия в вопросах проведения олимпиады между участниками и жюри, я решил все-таки раздобыть “Требования к проведению регионального этапа...” этого года, чтобы вечером, после тура, было что дать почитать жюри. (Сразу отмечу, что я не имею никакого отношения к проведению региональной олимпиады — ни как член местного жюри, ни как разработик задач.)
Чтобы скачать “Требования...”, я, естественно, полез на rosolymp.ru — именно там они были все прошлые годы. Сейчас там я требований не нашел, зато наткнулся на интересную новость. Заголовок новости гласил примерно следующее: “Вниманию жюри региональных этапов олимпиады по информатике!” (здесь и чуть ниже тексты цитирую по памяти, т.к. новость с сайта удалили).
К новости были приложены два файла. Первый назывался circles-check.zip и, конечно, меня сразу заинтересовал. Но второй был doc-файлом, и поэтому я начал изучение новости с него. Как и следовало ожидать, doc-файл был адресовам жюри региональных этапов, и его основная часть состояла из двух пунктов:
1. В условии задачи 2 необходимо заменить ограничение 100 000 на 10 000;
2. Проверяющая программа по задаче 7 содержит неточности; правильная проверяющая программа прилагается.
Ну ладно, первая новость хоть что-то и палит, но не очень много. Но вторая новость выглядит очень странно. Очевидно, что circles-check.zip и есть тот чекер, но если это так, и если он нетривиальный (ясно, что тривиальные чекеры типа ncmp заменять не потребовалось бы) — то ведь он может сильно спалить задачу. Качаю circles-check.zip, еще надеясь увидеть, что либо скачивание архива закрыто паролем, либо сам архив запаролен...
Но нет! Архив скачивается, распаковывается, и в нем и правда оказывается файл check.dpr (а также check.exe), который действительно является чекером к некоторой задаче... и менее чем за две минуты чтения 203 строчек кода я понимаю условие задачи. Кто видел этот код (или кто его увидит, когда его выставят в архиве), тот согласится, что пересечение множества серединных перпендикуляров не оставляет места сомнениям, тем более что все функции названы говорящими названиями, да и на десерт в коде есть, например, следующий фрагмент:
if not(equal(p, pp)) then begin
<...>
quit(_wa, format('Points: %d, %d, %d, %d are not on the same circle', [ind[1], ind[2], ind[3], i]));
Как выяснилось сегодня, мое понимание условия было полностью верным, с точностью до одной детали: сначала мне показалось, что нельзя одну и ту же точку кидать на обе окружности — но это фактически несущественно. (Вечером в субботу, когда я почитал чекер повнимательнее, я заметил этот свой баг.)
Все это я транслирую у себя на стене во вКонтакте (стараясь там не упоминать детали понятного мною условия), которую читают многие люди, занимающиеся региональной олимпиадой — как готовившие задачи, так и входящие в жюри разных регионов (а школьники, в основном, видимо, пишут тур). В итоге через пару часов новость с сайта удаляют, но ситуация остается крайне неприятной.
Новость на сайте датирована 17 января, т.е. этот архив лежал на сайте уже примерно двое суток. Ясно, что не только я его мог тут увидеть, и совершенно непонятно, не видел ли его кто-нибудь еще из участников, их учителей или вообще сочувствующих. Седьмая задача по смыслу далеко не самая простая, ее полное решение может сильно помочь в прохождении на РОИ — а потому такое палево может сильно помешать участникам, которые архива не видели.
Вообще, на мой личный взгляд, наиболее правильное решение для центрального жюри на тот момент было бы снять задачу с тура, но понятно, что за два выходных вряд ли получится проинформировать все регионы. Альтернативный вариант — не учитывать эту задачу при отборе на РОИ, не предупреждая об этом участников заранее, — тоже несколько сомнителен. Бурундук2 предлагает еще один разумный вариант — в срочном порядке выдать всем участникам региона этот чекер — но ясно, что он тоже нереализуем.
Но при этом я понимаю, что будет весьма плохо, если мои знакомые школьники не пройдут на РОИ просто потому, что их обойдет кто-нибудь еще, кто сам (или чей учитель) заметил этот чекер на сайте и рассказал задачу. Поэтому я даже думаю над тем, не рассказать ли задачу (вместе с квадратичным рандомизированным решением, которое я довольно быстро придумал) всем своим знакомым школьникам, чтобы они оказались как минимум в не более плохом положении, чем другие участники. Конечно, корректность этого варианта крайне неочевидна, но корректность варианта “я знал, что мои школьники могут оказаться в заведомо невыгодном положении, и ничего не сделал” мне тоже не очевидна. Но в итоге я решил отказаться от этой идеи, и даже удалил ссылку на конкретную новость со своей стены вКонтакта.
Ситуацию еще несколько упрощало то, что задача была довольно нетривиальной, да к тому же еще и геометрией (а мое квадратичное рандомизированное решение еще и весьма нетривиально в реализации). Не так уж и много в России людей, способных понять этот чекер, не так уж и много людей, способных написать такое решение (на тот момент я не знал совсем уж простых решений). Поэтому если бы чекер на сайте увидел средний участник региона, то вряд ли он ему помог бы.
Но тем не менее, на данный момент единственное, что было сделано, чтобы минимизировать эффект от спаленнной задачи — это соответствующий материал был довольно оперативно убран с сайта, где продежал два дня. Мне далеко не очевидно, что не было ничего другого, что можно было сделать. Кроме того, интересно будет посмотреть на статистику по этой задаче. Я рискну все-таки понадеяться, что центральный оргкомитет что-нибудь еще придумает, чтобы минимизировать несправедливость отбора на РОИ, вызванную спаленной задачей.
Кроме того, я надеюсь, что из произошедшего будут сделаны необходимые выводы, и что такая ситуация в будущем не повторится. (Тем более что правки в условия, по-моему, попадали на росолимпе в открытый доступ и раньше — хотя я тут могу и ошибаться, сейчас с ходу примера не нашел.)
...И еще, в качестве несколько офф-топика. Все-таки вызывает удивление, почему до сих пор в России тестирование решений регионального этапа не осуществляется централизованно. Казалось бы, никаких технических препятствий этому нет, но это сняло бы множество проблем. Не говоря уж о том, что не потребовалось бы распространять исправленный чекер, были бы также исключены и многие проблемы местного жюри. Я пока не будут писать про веселое тестирование решений первого тура в этом году в Нижегородской области, тем более что там история пока еще не закончилась — но если кто не знает, как проходят региональные олимпиады в регионах, то вот история двухлетней давности. С тех пор изменилось многое, но на качественном уровне — мало что. Централизованное тестирование половину проблем бы решило.
Всё не так радужно, как вы описали, множество комментариев к WA, звучащие названия функций, ограничения, плюс ко всему две трети решения в виде формул в чекере. Остальная часть решения — это одна маленькая идея. Повезло, что вовремя убрали чекер, но всё-таки зря вы выложили ссылку к себе на стену, много успело его за это время скачать судя по "лайкам" под вашим постом на стене.
Ну я вроде постарался сделать так, чтобы из поста было ясно, что мне история вовсе не кажется радужной.
Очень печально, что прошел этот инцидент, со своей стороны могу сказать, что эта задача далась мне очень нелегко (получил по ней 100 баллов). Думаю, многие, как и я, не видели чекер и, даже, не подозревали о существовании открытого доступа к нему.
Хороший пост, хорошая история, которая заставляет задуматься над тем, а может все-таки стоит пользоваться социальными сетями. Хотя больше заинтересовала "история двухлетней давности". Вообще, раз уж рассматривать возможность централизованной системы тестирования, то почему бы не провести по актуальным правилам РОИ и региональный этап? Сегодняшняя система проведения региональных этапов — чудовищно жестокая. Цена ошибки слишком высока. Многие талантливые программисты теряют возможность попасть на РОИ, если у них есть малейшие проблемы с внимательностью и концентрацией. Эта система уже изжила себя. Алгоритмы достигли такой сложности, что большая часть школьников вряд ли способна с первого раза написать их без ошибок.
Проблемы с централизованным тестированием в основном бюрократические. Нет никакого основания (и видимо не может быть при текущем положении о Всероссийской олимпиаде) обязать регионы тестировать где-то централизованно.
А добровольно многие регионы не согласятся. Некоторые проводят в неположенные даты, некоторые нагло приписывают баллы и много других нарушений случается. Которые так сразу все отслеживаются. Что регионам нафиг не сдалось. Им проще посадить 5 бабушек запустить по 20 решений на 10 тестах (а остальное выкинуть) за пару часиков. И что самое грустное с этим ничего не сделать — проверка этих нарушений в компетенции тех кто их допускает.
Не понятно, почему нет никакого основания обязать регионы тестировать централизованно. На самом деле, сейчас ведь и так (в идеальном варианте) регионы очень ограничены в оценивании задач, они должны просто прогнать решение участника по представленным тестам, а потом посчитать, сколько тестов прошло. Если считается, что есть основания обязывать регионы делать так, то непонятно, почему нет оснований обязывать регионы оценивать решения путем отправки решений в централизованную систему.
А в Положении вроде вообще все довольно расплывчато написано насчет системы оценивания, и, по-моему, при желании можно к положению притянуть любую навязываемую сверху систему.
По положению о всероссийской олимпиаде школьников задания проверяет региональное жюри, используя разработанные центральной методкомиссией критерии. Поэтому центральная методкомиссия может навязать тесты и чекеры, но не может навязать тестирующую систему.
«16. Центральные предметно-методические комиссии Олимпиады: разрабатывают ... процедуры регистрации участников, проверки и оценивания выполненных олимпиадных заданий 17. Проверку выполненных олимпиадных заданий школьного, муниципального, регионального и заключительного этапов Олимпиады осуществляют жюри соответствующих этапов Олимпиады. ... 41. Региональный этап Олимпиады проводится в соответствии с требованиями к проведению указанного этапа Олимпиады»
Почему бы не сказатьв требованиях, что проверка должна состоять в отправке решения в централизированную тестирующую систему? Считать, что это процедура оценивания, утвержденная ЦМК. Местное жюри проверяет, да. Но проверка должна состоять в «отправить решение и записать баллы».
Потому что проверку осуществляет жюри, а не центральная тестирующая система.
Да нет, на самом деле не в этом дело. Нет УНИВЕРСАЛЬНОЙ тестирующей системы на все случаи жизни.
Я вот посмотрел на ВКОШП, как питерцы используют PCMS2. Это ужас! По-моему, использовать PCMS2 для большого контеста просто невозможно. Там нет никаких удобных средств фильтрации посылок, там нет сообщений, там не показывается протокол тестирования на претестах. Казалось бы, ejudge по всем параметрам лучше — но в Питере все равно используют PCMS2, так как им нужна своя собственная тестирующая система.
Централизованная тестирующая система удобна мелким регионам, где 20-30 участников. В Москве — больше 400 участников, нам нужны удобные средства контроля контеста. Нам нужны личные сообщения, нам нужны возможности фильтрации сабмитов по разным критериям и т.д.
Следующая проблема — это поддержка всего этого хозяйства. Логины, начало и конец контеста, разбирательство с проблемами типа "мое решение вот здесь работает, а в тестирующей системе — не работает". Кто будет этим заниматься?
Половина того, что ты написал про PCMS2 — неверно :)
Но суть не в этом. Прямо сейчас такой системы нет. Но, если захотеть, то можно за небольшое время допилить некоторую хорошую стабильную систему, предоставив региональному жюри удобную тестирующую систему для того, что может им понадобиться на регионе.
Только делать это нужно только после того, как необходимость в такой системе будет подтверждена.
Интересно, что же именно из того, что я написал про PCMS2 — неверно?
Некоторые средства фильтрации посылок есть, причем достаточно мощные. Просто ими надо уметь пользоваться...
Сообщения есть. Если про то, что только в одну сторону и участник не может задать вопрос через систему — да, пора бы это прикрутить. Но насколько я понимаю, есть несколько причин их отсутствия.
И тестирование на претестах вроде показывается.
Вообще, идея писать интерфейс в виде окна на Java была плохой — расширять сложно. Будущее здесь было и есть за web-интерфейсами.
Зато PCMS2 легче расширяется на больше число проверяющих компьютеров — мы результаты все время в онлайне видели.
А вообще это — offtop. В качестве системы для региона можно и ту, и другую, и testsys допилить. Желательно только за основу брать что-то стабильное.
Мощные средства фильтрации посылок — это через правку конфига, влияющего на глобальное отображение списка посылок на одном контролирующем мониторе? Может быть оно и мощное, но явно неудобное, а я говорил про "удобные" средства фильтрации. Сравни удобство фильтрации в ejudge и в PCMS2.
Про сообщения от жюри участникам я в курсе. Это не интересно, это можно и в каждой аудитории объявить вслух. Интересны сообщения от участников к жюри, а то в итоге на каждой субботней интернет-олимпиады если у школьников есть вопросы по условиям, то они сначала должны сначала мне объяснить свой вопрос, а потом я начинаю пытаться достучаться до всех подряд знакомых, кто может хоть сколько нибудь помочь...
Про тестирование на претестах — не знаю, но на интернет-олимпиадах этого вроде бы нет, и даже протокола ошибок компиляции тоже нет.
К ejudge тоже подключаются дополнительные инвокеры, только у нас нет стабильного "дата-центра", где бы стоял тестирующий сервер и десять инвокеров. Потому что сейчас мы проводим одну олимпиаду, а завтра берем ноутбук и везем в ЛКШ-Зима. А на другом тестирующем сервере в это время идет открытая олимпиада...
Я, конечно, скажу это не совсем всерьез, но на CF регулярно проводят раунды, в которых участвуют по 3000 человек, онсайты, где участников еще больше, плюс на CF есть удобная система тренировок, достаточно автоматизированная, и не требующая постоянного контроля/вмешательства. Так что если бы провести всю волокиту через министерство образования по поводу проведения РОИ на CF — думаю, CF смог бы провести РОИ на достаточно высоком уровне, что он неоднократно доказывал, проводя онсайты.
"РОИ" или "регионального этапа всероссийской олимпиады школьников по информатике"?
Да любой из этапов. По идее, каждая из областей может создать свою тренировку на CF, включить в нее свой состав участников. Или же создать одну тренировку и в каждой из областей заказать ее виртуально(здесь уже будет сложнее, так как нужно, чтобы правильно отображался монитор, только своей области — иначе жители Калининграда получат сильное преимущество по сравнению с Владивостоком). Но суть не в этом. Мне кажется, что проект вполне в состоянии даже в нынешнем виде проводить такие мероприятия намного лучше, чем это делается сейчас.
Ну давайте посмотрим...
Мы проводим в Москве региональный этап на 400+ участников в 4 точках проведения. Нам нужно 400+ логинов в тестирующую систему. Кто будет создавать эти логины и как? Вариант "создать руками" не предлагать. Вариант "каждый из 400 школьников зарегистрируется сам" невозможен. Вариант "администраторы сайта все сами сделают и пришлют каждому из 80 регионов нужные логины" предложите администраторам сайта.
Дальше, нам нужен контроль за контестом. Типа старт-стоп одновременно всем и всё подобное. Нам нужно уметь отвечать на вопросы вида "почему у меня программа работает, а в тестирующей системе не работает". Для этого мы должны иметь возможность доступа к механизму тестирования. Или вы думете. что администраторы Codeforces смогут это взять на себя?
На самом деле ваше заблуждение заключается в том, что вы думаете. что нужно создать средство, которое работало бы без вмешательства человека. На самом деле, любое серьезное онсайт-мероприятие проходит при вмешательстве человека, и тестирующая система должна предоставлять удобные возможности для контроля над туром. А вот какие возможности у сайта Codeforces для этого — мы не знаем.
Про использование Тренировок для проведения подобных соревнований Сергей написал ерунду. То, что Codeforces регулярно справляется с нагрузкой ~2000 агрессивно и одновременно участвующих пользователей — правда. Многие вещи в интерфейсе у нас хорошо развиты — например, вы упоминали фильтрацию и сообщения.
Конечно, для проведения подобного мероприятия нужна специальная кастомизация. Центр олимпиадной подготовки СГУ уже два года проводит муниципальный этап и школьный централизованно для всей области — это сотни участников и десятки локаций. Короче, я представляю себе проблемы подобного проведения вполне неплохо.
Я про то, что идея централизованного тестирования (пусть в первые годы как рекомендация — т.е. необязательная к использованию) не выглядит сверхзадачей. На ваши вопросы есть простые и понятные ответы.
Регистрировать участников должны региональные организаторы. Регистрируют в свою локацию. Старт-стоп делают самостоятельно, но в каких-то границах. Отвечать на вопросы могут сами или делегировать эту возможность жюри. Я полагаю, что и на другие вопросы по порядку проведения можно дать естественные ответы.
Я проводила раунды на Codeforces в качестве автора задач. Дают админские права и можно отслеживать ситуацию по каждой посылке (посмотреть код, посмотреть тест, на котором не работает, посмотреть вердикт чекера, по чьей вине — участника или жюри — произошел отказ от тестирования).
Речь идет не о том, чтобы исключить человеческий фактор, а чтобы поставить участников в более равные условия, и заодно наладить оперативную связь между организаторами. Централизованная система — закономерный шаг в этом направлении после унификации задач.
Разумеется, подобные инициативы следует развивать совместно с администрацией проекта, а не просто добавлять контест в тренировки и надеяться на авось. Генерация 400 логинов и паролей вполне технически реализуема, а раздача этих логинов школьникам — работа для организаторов на местах.
P.S. Вот видите, администрация меня опередила :)
Я про это писал уже в комментариях, но напишу еще раз.
Централизованная система удобна для мелких регионов, у которых 20 участников в одном месте. Им не нужно париться с тестирующей.
Никакой крупный регион не будет связываться с централизованной тестирующей системой. Прежде всего, ввиду ответственности. Мы отвечаем за олимпиаду и мы должны полностью контролировать ход ее проведения. То есть тестирующий сервер должен быть своим собственным и даже тестирующая система в идеале должна быть своей собственной. Если проводить олимпиаду на codeforces, и вдруг у вас на серверах отключат электричество или пропадет интернет, или иной сбой случится — кто будет отвечать за это?
Не спорю, может быть codeforces и предоставляет удобные средства для администраторов. Но в любом случае нам нужна своя тестирующая система, а не сторонняя.
На самом деле, при наличии желания вполне реально через несколько лет сделать тестирующую систему для всех регионов. И сделать ее использование обязательной. Только это нельзя сделать в виде "запилим сейчас по тренировке для каждого субъекта РФ". Нужно понять — какие требования должны быть к такой системе, каков механизм ее использования, кто за что отвечает, как устроена поддержка (придется ведь делать телефонную поддержку, да еще вполне возможно, что и многоканальную). Это довольно серьезная работа по организации централизованного тестирования и вроде бы как никто не собирается этим заниматься.
Начать, конечно, проще с малого — предоставлять тестирующую систему для желающих регионов, не навязывая, а только предлагая. Только непонятно за чей счет — регионы за такой сервис вряд ли готовы заплатить, проводить это без финансирования на большое число регионов уже не получится, а финансирование на проект нужно выбивать в министерстве...
Адекватное решение — это видимо "Либо вы тестируете на аккредитованной вашей системе, удовлетворяющей таким-то требованиям, либо тестируете у нас".
"У нас" должно быть несколько разумных регионов. Я верю, что скажем Московские, Питерские, Саратовские, Екатиринбуржские и еще несколько организаторов, не перенапрягутся, если между ними более менее равномерно поделить остальные регионы.
Проблема, в том, что даже если объяснить зачем это надо перечисленным выше можно, то вот чиновникам из министерства куда сложнее.
Заминусовали мой комментарий, не поняв, что я имел в виду.
Я не пытаюсь объяснить Питеру, что им нужно перейти на ejudge, наоборот, я полностью их понимаю. Да, я считаю, что ejudge гораздо лучше подходит для проведения регионального этапа, чем PCMS2 по любой функциональности, но как я и писал выше не бывает "универсальной" системы на все случаи жизни. И в данном случае если в Питере используют PCMS2, а не ejudge, то у них должны быть на это причины.
А причина очень простая — любому серьезному организатору региональной олимпиады нужен полный контроль над тестирующей системой. Вплоть до контроля над кодом системы. Система должна быть "своя", чтобы при необходимости в ней можно было исправить что-то на уровне исходного кода. Поэтому и будет в Питере использоваться PCMS2, а в Москве — ejudge, и никакие универсальные тестирующие системы им не нужны, нужна своя, абсолютно контролируемая система.
Правильно ли я понимаю, что тот же ejudge всех впринципе то устроил — система с открытым кодом? Скачивай и правь сколько хочешь. Или есть другие причины не использовать ejudge, когда есть некая "своя"?
Нет, неправильно. Во-первых, любой регион, у которого есть своя адекватная система, будет использовать свою систему. Потому что хочется полного контроля над тестированием, вплоть до возможности исправления ошибок в тестирующей системе.
Во-вторых, ejudge тоже не идеальное решение. Ejudge требует умения администрировать Linux-сервер и достаточно сложен в установке и настройке. Разобраться самостоятельно в установке, настройке и администрировании ejudge практически невозможно без помощи опытного товарища, т.к. документации по этому нет.
И ещё вопрос — вы всё-таки за то, чтобы создать систему, которую можно было бы раздать всем регионам или всё-таки создать систему, которая будет развёрнута в одном месте для каждого этапа олимпиады?
По-моему, лучше раздавать систему всем регионам. Тогда они смогут не только региональный этап проводить, но и другие мероприятия, например, муниципальный этап олимпиады. От этого выиграет олимпиадное движение в целом. При этом желательно все-таки для тех регионов, которые не хотят сами поднимать тестирующую систему, предоставлять "аутсорсинг".
Речь идет только об одном этапе — региональном. На заключительном этапе, понятно, своя локальная система. А муниципальный этап в каждом регионе проводится по отдельным правилам, в отдельное время и на своих собственных задачах, там если и возможна тестирующая система, то только на уровне региона.
И, вы будете смеяться, мы правили код PCMS во время второго дня регионалки (был мелкий баг с отображением списка подходов у участников при слиянии таблиц результатов на сервере) =)
Ещё один интересный момент — если мы не переводим проверку в один центр для регионалки, то нужна ли та "принципиально новая система" для проведения регионалки (и муниципала) на местах. Насколько для регионов будет востребована такая система? Может в большинстве регионов всё нормально и мы зря устраиваем бурю в стакане?
К сожалению, про большинство регионов, в которых все нормально, мы и так знаем. Таких регионов — 10-20.
А вот что происходит в остальных регионах — мы не знаем. Давайте попробуем узнать
Вот все-таки мне кажется, что централизованная тестирующая система отнюдь не решит "половины проблем". А уж вариант "раздавать единую систему" выглядит еще менее радостным. Про плюсы уже написано много, напишу, скажем так, не про минусы, а про вопросы, которые придется решить в том или ином случае (а также решить, кто будет отвечать за это).
Централизованная тестирующая система
а) рассмотрение апелляций (предполагает личное общение участника с апелляционной комиссией)
б) подготовка рабочих мест участников (явно необходимо разрабатывать образ диска, в котором будет все необходимое ПО с версиями компиляторов, совпадающих с версиями в тестирующей системе).
И собственно для ЦТС, и для образа диска необходима будет поддержка пользователей и периодические обновления.
Единая тестирующая система, которую будут обязаны использовать все регионы
Попытки, видимо, были — в "Методических указаниях..." к школьному и муниципальному этапу за 2008 год нашла рекомендацию приобрести и использовать систему, разработанную компанией "Кирилл и Мефодий". Вероятно, популярности она не снискала, и в последующие годы просто "советуют" "закупить одну из имеющихся в стране коммерческих программных систем для проведения олимпиад по информатике".
В силу п.0 сомневаюсь, что такая система будет бесплатной. Т.е., скорее всего, регионы обяжут ее приобрести. В идеальном варианте это будет образ диска, в реальном — исполняемый файл, который будет весьма требователен к железу и операционной системе (т.е. будет запускаться далеко не на любом компьютере), будет иметь закрытый код и скромную документацию. Ответить на вопрос "почему это решение не работает" иной раз будет практически невозможно (в отличие от ЦТС, кстати: там до разработчиков достучаться окажется проще).
Настройка этой системы ничуть не будет проще, поскольку характеристики компьютеров, на которые ее будут ставить, окажутся разными, и все равно как минимум потребуется выяснять, какой нужен TL в той или иной задаче.
Подготовка рабочих мест участников тоже совершенно не упрощается, ибо опять же крайне желателен образ диска, при этом в тестирующей системе ничего поменять будет нельзя.
Поддержка и периодические обновления (только уже двух образов) опять же нужны.
Идея сертификации существующих систем (IMHO) сведется к внедрению ЕТС (придется выбирать между "внедрить сразу" и "сначала помучиться" — а итог будет один).
Своя тестирующая система (разработанная самостоятельно или же настроенная ejudge / pcms / что-то еще) действительно позволяет держать под контролем процесс тестирования.
Приказы о формировании регионального жюри пишутся не за неделю до олимпиады, так что время на подготовку обычно есть. При определенной настойчивости и желании можно пообщаться с разработчиками существующих систем и выполнить настройку тестирующей системы. Ну или провести олимпиаду на "сторонней системе / сайте".
Просто в текущей ситуации представляется, что внедрение хоть ЦТС, хоть ЕТС, может, и улучшит ситуацию в регионах, где "ничего нет" (и то не факт), но вот в регионах, где вопрос более-менее решен, вряд ли станет лучше.
Это, конечно, оффтоп, но мое мнение, что система проведения региона далеко не столь жесткая, и непотяно, почему тут цена ошибки слишком большая. Если участник тщательно оттестировал программу, если участник отослал ее в тестирующую систему и убедился, что на тестах из примера она работает (т.е. нет проблем с форматом ввода/вывода), то он вполне получит высокий балл. Если же участник за решение, которое он считал правильным, и которое работало в тестирующей системе на тестах из условия, получает мало баллов, то, значит, тестировать надо было лучше. (Ну, естественно, это все при условии адекватных тестов, но это не вопрос к системе проведения олимпиады, а вопрос к составителям тестов.)
Вообще, мое личное мнение — тестирование задач тоже является важной частью умений программиста, а современная система РОИ (и межнара) сильно занижает это.
А за что так минусуют этот пост? Насколько я понимаю, тестирование — одно из самых важных умений программиста на практике, поскольку никому не нужна ваша пусть и замечательная программа с оригинальной идеей, но с кучей багов. Другой вопрос, что на олимпиадах стали придерживаться принципа, что генерация идей важнее тестирования, и участникам дается возможность проверки online. Это действительно делает олимпиады интереснее, но и удаляет их от реальных задач
Сейчас, кстати, реальные задачи тоже движутся в том направлении, что пишут код и тестируют работоспособность программы разные люди.
Согласитесь, придумать, найти багу и исправить, не то же самое, что не придумать
PS: я согласен, что на РОИ разница между придумать, протестировать и придумать, узнать, что что-то не так сверху, исправить довольно мала. Но мне это кажется меньшим из зол.
Перетестирование, снятие задачи и прочее будет несправделивым по отношению к участникам, которые сдали её на хороший балл не зная об этой баге оргкомитета(а таких , думаю, большинство). Результаты должны делаться на соревновании участниками, а не после него оргкомитетом.
Да, я в текущей ситуации полностью справедливого выхода не вижу, и полный неучет задачи считаю еще более неправильным, чем ничего-не-деланье. Мои слова про снятие задачи в посте относятся к ситуации ДО тура — имхо ТОГДА это было бы оптимальным решением.
Есть ли хоть один аргумент в пользу того, чтобы не снять задачу вообще? Т.е. не засчитывать решение всем, а тем кто выложил чекер предложить возместить моральный ущерб участникам в материальном виде (думаю никто, кроме выложивших против особо не будет).
Или вообще провести доп. тур, в качестве исключения.
Если бы вы видели наших организаторов, вы бы никогда не предложили им провести дополнительный тур) они даже на апелляцию смотрят как на нечто из ряда вон выходящее. Впрочем, наше региональное жюри вообще не отличается адекватностью, что хорошо показано по ссылке в посте...В частности, ни одного года из 4 прошедших не было, чтобы я не отсуживал посредством апелляции себе >=100 баллов
больше 100 — здорово конечно
Наше жури мне показалось самым неадекватным: 1) любая среда глючит (сказывается новизна компов) 2) чекер свой 3) на просьбу проверить сэмпл — отвечаю: не будем (у меня 0 из-за этого по трём задачам и я радостно пролетаю мимо всероса) 4) на любой вопрос. даже в форме "верно ли..." — без комментариев 5) ну разбора естественно не было
У нас дело так обстоит:
1) среды не глючат, с этим все нормально 2) Вся проверяющая система своя, эдакая NNSuperFantasticJudge, из-за которой регулярно получал 0 вместо 100 3) Семплы тестируются как-то странно, например, во время тура проходят, а после-нет (вот сегодня, например, такое много у кого было) 4) Вопросы во время тура не предусмотрены, ибо у NNSuperFantasticJudge нет такого супер сложного функционала 5) Разбор — это отдельное развлечение. Обычно, первые две задачи тура разбираются более-менее, с попутной критикой и всяческим трешом. Но как только дело доходит да 3-4 задачи, тут жюри говорит нечто вроде "это слишком сложные задачи, мы не знаем, как их решать, да и решили то их только Калинин/Кузьмичев/username, так что че их разбирать-то???"
Оффтоп. А не расскажешь, как это так на апелляции можно отсудить 100+ баллов? Вообще какая может быть апелляция на таком соревновании, все-таки, не люди же проверяют, а машины?
По ссылке в конце поста приведен как раз один из этих случаев отсуживания 100+ баллов. Т.к. в Нижегородской области именно скорее люди, а не машины.
Есть, участники тратили на задачу разное время. Возможно, кто-то не пытался решать ее, а кто-то потратил на нее весь контест. Согласитесь, Вам было бы не очень приятно, если бы сняли задачу, на которую Вы потратили много времени и получили по ней хороший балл.
По-моему в России все делается достаточно несправедливо.... Но согласитесь, что если я получил 60 баллов,а кто-то 100, и это решило проход в следующий тур, то после этого поста мне также должно быть "не очень приятно". В случае проведения дополнительного тура не пострадает никто (за исключением организаторов). Сильные участники получает больший балл, слабые соответственно меньший + решается проблема в регионах, где не пройден порог(увеличивается разница в баллах между победителем и призёром)
То что вы предлагаете объективно невозможно и не предусмотрено положением об олимпиаде. Невозможно, потому что 1. Нет задач. Их надо готовить, рассылать по регионам, что мы уже видели к чему приводит иногда.
2. Не все живут в областных центрах. И участники уехали.
3. Бывают другие олимпиады, которые массово в это время.
В любом случае настолько существенной утечки, чтобы это сильно повлияло на проходной балл быть не должно. Информация сильно распространилась во время первого тура в большинстве регионов, и после этого чекер был быстро убран. Влияние на балл от всяких нарушений в разных регионах явно больше.
Убирать задачу надо было до тура, так как иначе получается совсем бред, что уже сказали выше. Сделать это в интервал от обнаружения до собственно тура было невозможно из-за кучи бюрократических проволочек стоящих за олимпиадой.
Возможно произошедшее не совсем честно, но тут надо не развивать истерику о восстановлении справедливости, а менять систему так, чтобы такие вещи не повторялись.
1) Сколько в России чемпионов мирового уровня? — мне кажется им не составит особой трудности подготовить и протестировать 4 задачи. 2) Все финансовые затраты возложить на виновных в утечке 3) Подобрать два дня (для участников не из регион. центров) вполне можно
Сколько человек скачало чекер? Ну допустим его скачал учитель. Вероятно, он слил его своим ученикам(руководствуясь, описанным в посте). Т.е. кол-во учителей*(~5) + кол-во учеников. Итого порядка 200 человек, из них пускай 50 пройдёт. Около четверти участников финала, однако.
Я действительно не понимаю в чём бред моего предложения. Согласитесь, задачи были, в основном идейные и не требовали особых алгоритмических знаний. Те кто решили данную задачу — решат аналогичную по сложности.
Подготовка задачи это куда сложнее чем вам кажется. Того что вы предлагаете не может быть, потому что так не может быть никогда.
В любом случае диалог не конструктивен. Имена и контакты чиновников, которым можете изложить позицию по вопросу уже не раз возникали в обсуждениях.
Я же не говорю,что один человек, за день на коленке все сделает. Мне кажется время её есть.
Я не думаю, что чиновники прислушаются к моему мнению. А вот к мнению победителей IOI прислушаются.
Невозможно, потому что невозможно — идеальное доказательство.
Ха. Ха. Ха. Вы слишком наивны.
похоже, это про какую-то другую олимпиаду пост...
Пост про регион. И кажется непосредственно вы, и можете с этим что-то сделать. Не так ли?
Просто всё, каждый пункт из того, что вы написали, и близко не соответствует действительности.
Призеры и победители всеросса должны проходить на всеросс даже с такой мизерной утечкой информации. (я думаю, прошли) Остальные — увы, но на всероссе вам все равно ловить было бы нечего. А ссылаться на этот баг понимая, что просто вам ничего больше не поможет — удел слабых.
Вы знаете, для подготовки к всеросу есть время. Например в моём регионе местный вуз собирается готовить победителя.
Но я говорю как раз о том, что сильные школьники прошли и пройдут, даже если будет её один тур. Но этот тур поможет отсеять слабых школьников (списавших), и вместо них поедут не сильные.
А что если дополнительный тур отсеет кого-то, кто не знал ничего об утечке? Тогда он, обиженный, придет на КФ и создаст такую же тему. А в ней он скажет, что по результатам двух основных туров он прошел, даже не смотря на то, что некоторые заранее знали эту задачу. И теперь из-за этого дополнительного тура, который не предусмотрен никаким регламентом, его лишают законного права поехать на Всерос.
Ну давайте тогда скажем, что-то вроде: На первом туре я выйграл,а проводить второй нечестно.
Регламент есть. Но что мешает его изменить кроме сотню раз упомянутых бюрократических убеждений?
Альтернатива: Пускай на всерос едут больше школьников, а там будет доп. отборочный тур. Его будет проще контролировать.
Справедливости в мире нет и быть не может (с). Ну, возникла такая ситуация. В любом случае, кто-то будет обижен и обычно это участники. Сам попадал в подобную ситуацию, в которой проблемы были гораздо серьезнее, чем описанные в этом топике и пострадавших было больше, а жюри все оставило как есть. И ничего, живут люди как-то после этого. Тренируйтесь теперь к следующему году.
Доп отборочный тур? Дайте мне вашей травы... Вы предлогаете какие-то запредельные альтернативы.
Ну может стоит добавить немного аргументов?
Подготовка задач, качественных задач. Бюрократическая волокита. Причём со всеми регионами страны.
Я пишу в пятисотый раз одно и тоже. Я верю что вполне возможно подготовить тур и разобраться с бюрократической волокитой за два месяца(если говорить об альтернативной идее). Но это всё при желании...
Ну человеко часов будет потраченно много, а доля справедливости будет маленькой от всего этого грандиозного действия. Не верьте, что что-то может пройзойти за два месяца в масштабах нашей страны. Никто не будет слезать с рельс.
А почему бы не слезть с рельс? Я не пытаюсь верить и наедятся — я пытаюсь добиться.
Сейчас вы уже ничего не добьетесь. Предлагаю вам собрать детальную статистику постфактум. После окончания финального тура. То есть: взять списки прошедших на финальную часть. Затем взять результаты не учитывая эту задачу. Посмотреть, как эти множества друг с другом пересекаются. Ну и наконец взять победителей и призеров последнего этапа. Сомневаюсь, что там будут люди, отсутствующие во всех множествах.
Вот я просто до боли обожают такие предложения! Сейчас ничего не сделать, а вот в следующий раз.... Какой раз то уже? Не первый и не последний случай. Ну давайте все будем ждать пока проблема решится сама собой,а потом пройдёт год и ... снова ждать.
p.s. В прошлом году призёрами становились все, кто набрал более 334
В правке бред. Тут уже узко, давайте забьем :-)
надеюсь вы всё же предложили забить на правку а не на моё предложение в целом.....
Изначально я влез в эту ветку с предложением реально оценить на сколько человек повлияла эта история, а не языком молоть. Но вы как-то холодно на это отреагировали. Ну и как следствие, забьем на мое изначальное предложение.
А давайте выясним, как Вас зовут, из какого Вы региона, сколько у Вас баллов и какой шанс у Вас пройти на Всерос, если будет 100 баллов по этой задаче. Нечего тут из мухи слона делать без повода!
Вы кажется не договрили. Если у меня по ней 100, то что?
Дело в том, что никто не может понять цель, которую Вы преследуете.
Получается, что некомпетентный аноним в интернете хочет что-то доказать всем компетентным людям, что они не правы.
А я правильно понял, что ты не придумал нормального решения за линию?
раз зашел разговор о линии, хотел спросить, почему жюри не дало ограничения 10^5?
с какой целью?
ну, чтобы не было решения за n^2, идеи на n^2 и n практически одинаковы, ну чтобы уже "добить" идею для n^2 до n.
ничего не понял. Наша цель была дать ползадачи на квадрат, и пол — на линию.
о чем вы, n = 2000, квадрат заходит на 100, какая линия
PS. это про пол задачи за квадрат
мы про геом говорим? там вроде 50 000
нет, вы ошиблись, там 2000
PS. честно говоря, немного забавно, что я вам об этом говорю)
А, тьфу! Я вспомнил — там квадрата не бывает, там или куб, или линейное. Куб не проходит.
50 000 может и хорошо было бы поставить, но не найти на разумной окружности столько целочисленных точек :)
ну квадрат там бывает
ну да, это, пожалуй, вполне аргумент
А как вообще получать окружности на которых много целочисленных точек?
Перебором, а также: http://oeis.org/A071383
тыц
Думаю, чтобы запутать. Ведь, по сути, тут не важно 2*10^3 или 2*10^5. Все равно решение либо за линию, что так и так пройдет, либо за куб/четвертую, что никак не пройдет.
можно еще за n^2
Как? Вот я бился-бился, так и не понял, как тут можно придумать квадрат и не придумать линию.
ну типа такого: возьмем точки 1 и 2 — предположим, что они на одной окружности, тогда переберем третью точку на окружности O(n), построим окружность, оставшиеся точки тоже проверим за O(n), если точки 1 и 2 не принадлежат одной окружности, то либо 1 и 3, либо 2 и 3 принадлежат одной окружности, проделаем аналогичное
за O(n) подобное, возьмем любые 5 точек, очевидно, что среди них будут как минимум 3 точки лежащие на первой окружности и не лежащие на одной прямой, переберем все тройки за O(n) построим первую окружность, и за O(n) из оставшихся вторую, ну думаю, тебе это решение уже известно после разбора кириенко, это так, для тех кто не знает, скорее
Я не сказать, чтобы особенно думал, у меня времени было крайне мало. Я придумал рандомизированное решение за квадрат, позже В.Д. Лелюх придумал рандомизированное решение за линию. Мне Коля сегодня рассказал свое линейное решение, оно по сути то же, что и рандомизированное Лелюха (правда, в реализации Коли набирает только 95).
А что из себя представляют эти рандомизированные решения? Что линия, что квадрат?
Но там же тривиальное линейное решение?
Я просто не понимаю, какая роль отдается рандому. Перебор троек?
сложно построить тесты, чтобы в каком бы порядке не перебирались тройки, нужная нашлась только в конце
Мое квадратичное решение: возьмем две случайные точки. С вероятностью как минимум 1/4 они лежат на одной окружности в ответе. Предположим, что они действительно лежат на одной окружности. Тогда ее центр должен лежать на серединном перпендикуляре. Для каждой из оставшихся точек если предположить, что она лежит на той же окружности, то центр определяется однозначно. Поэтому для каждой из оставшихся точек найдем соответствующий центр, отсортируем по положению на прямой, разобьем на группы с совпадающими центрами и каждую отдельно проверим: возьмем все точки, которые в эту группу не попали, и проверим, что они лежат на одном круге.
Если две наши точки действительно лежат на одной окружности в ответе, то всем точкам, лежащим на этой же окружности, будет соответствовать один центр, поэтому когда мы будет проверять этот центр, то останутся только точки другой окружности, и решение мы найдем.
Вероятность того, что две случайные точки лежат на одной окружности, как несложно видеть, не менее 1/4 (и это грубая оценка снизу), поэтому за несколько итераций нам повезет.
Но писать это задолбаешься.
Линейное рандомизированное решение аналогично по идее, только будем брать три случайные точки (вероятность им оказаться на одной окружности >=1/8) — и тогда никакой ни сортировки, ничего не надо, надо только вычленить точки, которые лежат на той же окружности и проверить, что оставшиеся лежат на общей окружности. Я так понимаю, авторское решение такое же, только вместо случайных трех точек они перебирают все C_5^3 точки среди первых пяти.
Хм, а похоже, и правда сортировать ничего не надо, и все проще за квадрат.
Первое решение — ад) Но получше того, что я написал на контесте.
А авторское решение очень красивое и не очень сложное, респект. Эх, после того, как узнаешь верное решение, оно всегда кажется таким простым >__<
Не знаю, ну как могут прийти в голову эти рандомы?
Я решение на полный балл (идею взять пять, шесть — неважно, в общем мало точек) придумал сразу же, прочитав условия.
Может быть это потому, что я участвовал в олимпиадах по математике и принцип Дирихле у меня уже в подсознании?
не очень понятно, почему какие-то школьники должны страдать от того, что накосячили организаторы олимпиады?
Ты страдаешь? :D
нет, мне пох, просто справедливости ради
Мне кажется, хорошим выходом было бы вечером субботы заменить седьмую задачу.
Но это — если бы вдруг была подготовлена резервная задача, подходящая на замену. В этом году, насколько я понимаю, её не было; ну, это повод рассмотреть предложение готовить резерв на следующий год.
А ещё — если бы была возможность оперативной связи, из-за проблем с которой всё и началось.
Проблемы регионов, которые пишут в другие дни, если они есть, не знаю как решать.
Или может стоило бы выдать регионам задачи не за 5 дней, а за пару недель. Тогда бы в попыхах не пришлось бы так палиться и в случае обнаружения проблем было бы время нормально всё исправить.
Нееееее. Так дела не делаются.
Т.е. на школьников этого года Вы прилагаете попросту забить?
да на кого забить? по мне так проблема созданная из ничего, я уверен, что никто почти и не знал про это обновление на росолимпипе, да даже если и знали, мало кто захотел бы разбираться, если бы даже кто-то и захотел — это все равно сделать не так просто, ну спалили школьников 10 задачу (именно так, как она была на контесте), иначе, что-то я не вижу у всех 100 по ней, как-то далеко не 100
1) спалили, но не разобрались полностью
2) эти десять школьников нечестным способом лишают шанса пройти других
3) их не 10 — ссылка, висевшая на стене в ВК привлекает внимание, даже случайных людей
Почему все видят проблему непосредственно в сливе? По-моему основная проблема во втором пункте.
не, ну конечно, куда круче подготовить еще один комплект задач, провести дополнительный тур — как вы выше предлагаете, да, это лучше будет
Те, чей уровень соответствует уровню призера Всероссийской олимпиады, должны проходить на финал с приличным запасом по баллам, и даже эти пресловутые "10 нечестных школьников" роли для них не должны играть. Если Вы не смогли пройти на финал, то виноваты в этом исключительно Вы, а не кто-либо другой.
Я понимаю, что вам важнее то, что происходит здесь и сейчас.
Тем не менее, ничего лучше, чем оставить всё как есть, я для текущей ситуации предложить не могу. Например, как уже заметили, собрать участников во второй раз на возможный третий тур — это гораздо более сложная организационно задача, чем даже подготовка этого третьего тура. Это и трудности со временем и деньгами (все участники должны ещё раз приехать в какое-то место, которое ещё должно в этот момент быть свободно), и настройка десятков или сотен компьютеров для участников (попробуйте на досуге). И всё это во всех регионах, которым, чтобы они этим занялись, нужно ещё спустить соответствующие указания сверху — тысячи (не меньше) бюрократических бумажек, которые для этого нужно оформить...
Третий тур можно проводить, как дополнительный, приглашать на него топ, допустим 20%. Собрать учатсников — в чём сложность собрать сравнительо небольшую группу людей, я не могу понять. Настроить компьютеры — ? Это как? Наверное хард каждый раз форматируется и нужно всё с нуля ставить....
Финансовые затраты будут, но в масштабе гос. бюджета они не будут столь заметны (я уже отказался от идеи наказать виновных финансово). Проблема в бюрократии — пока тем, ктом имеет отношение к олимпиаде всё равно на школьников — ничего не изменится.
Гос бюджета? Лол ЧТО???
Опустим даже то, что выбор константы 20% вместо 21% и 19% должен быть как-то обоснован.
Попробую объяснить с другой стороны так. Если вам удастся организовать третий тур, позовите меня — хотел бы посмотреть и поучиться.
Выбор константы был сделано полностью наугад. Имелось ввиду, что следует приглашать школьников, претендующих на проход на всерос.
Я собственно объяснения не заметил. Мне не удастся организовать третий тур хотя бы потому, что меня никто не будет слушать. А к мнению людей отсюда вероятно прислушаются, хотя бы потому, что многие из них так или иначе имеет отношение к составителям/жюри и т.д.
Вот лично Вы(насколько я понимаю вы относитесь к жюри или оргкомитету в СПБ) стали бы проводить тур без бюрократических проволочек?
Я участвую в проведении олимпиады в Ленинградской области. Нет, я не стал бы проводить тур без проволочек. Перечислю несколько необходимых проволочек:
Компьютерные классы. Я не могу достать их из воздуха.
Приказ Министерства Образования (или чего там), по которому проводимый тур будет иметь какие-то официальные последствия. Без этого называть соревнование третьим туром не имеет смысла. Этот пункт, на мой взгляд, совершенно дохлый номер.
Соответственно — комплект задач, одинаковый для всей России.
А вы ещё и не из России? Представьтесь, пожалуйста.
По-моему вся проблема кроется во втором пункте, не так ли? А приказа вполне можно добиться. Если будет приказ — всё остальное появится, как следствие.
P.s. Я из России и не раз сталкивался с бюрократией(причём, как мне кажется в регионах всё же дела хуже). Поверьте, побороть вполне можно.
Вы верите в то, что после приказа много где все будет проведено нормально? Если и так в половине мест олимпиаду проводят как хотят и это сказывается на результатах в разы сильнее, чем эта ошибка.
Будет ли перетестирована 3 задача 2-го дня?
А что там такое, в 7?
Мы там обнаружилиеще один баг в чекере.
Есть совершенно технический вопрос, связанный с тем, что изменить результаты регионального тура теперь проблемно.
А есть где-нибудь поправленный чекер?
и вообще, мне не очень понятно, если вы говорите о том, что многие могли увидеть это обновление и это не есть хорошо, зачем же вы ссылку вк выкинули, это как бы способствует увеличению этого количества.
Это вам очевидно, что любые материалы по задаче, даже пара строчек из условия, могут конкретно спалить ее содержательную часть. А чиновникам из министерства — даже В. М. Кирюхину такое прийти в голову не может, они этого не понимают. А отрабатывать деньги за РосОлимп как-то надо — заполнять его как бы полезным контентом.
Кстати, очень хорошая мысль — в архив класть пароль для всех остальных обновлений, которые выкладывать на rosolymp зашифрованными.
А потом какой-нибудь школьник случайно угадывает пароль...
Вопросы о возможной атаке на архивацию формата RAR? По воспоминиям, скорость перебора когда-то увиденной мной программы не превышала 10000 паролей/секунду. Кажется, что при таком способе распространения наиболее вероятна ошибка в любом регионе, чем взлом/угадывания пароля.
Основные материалы олимпиады и были защищены паролем. Как минимум, в том виде, в котором они дошли до меня. Действительно, можно было им же запаролить архив с чекером.
Кажется, пароль для доступа к этому архиву был опубликован на Росолимпе 11 января.
Так что дальнейшее использование этого пароля бессмысленно. А вот положить в этот архив еще один пароль, который будет использоваться для шифрования открыто распространяемых материалов — осмысленно.
Тогда да.
Вообще, существует много доступных способов "безопасно" распространить материалы. Нужно только озаботить этим распространителей в правильный момент.