Мы рады пригласить вас поучаствовать в первом тестовом раунде Яндекс.Contest. Соревнование пройдет в пятницу 17 августа 2012 года с 20:00 до 22:30 по московскому времени. Для решения задач разрешено использовать такие языки программирования как C++, Java, FreePascal, Delphi, Python 2 и 3.
Правила тестового раунда — экспериментальные и во многом отличаются от правил, привычных для подобных соревнований (ACM ICPC, TopCoder, Codeforces, IPSC). Просим вас внимательно с ними ознакомиться.
Для ознакомления с системой Яндекс . Contest вы можете поучаствовать в виртуальном пробном соревновании A+B virtual.
Ваши отзывы, пожелания по системе и багрепорты нам очень нужны — вы можете оставить комментарий к этому посту или воспользоваться формой обратной связи. На ваши вопросы по раунду здесь могут отвечать несколько человек, кроме меня, в их числе Владимир Тен (vtenity) и Лев Толмачев (lev.tolmachev).
языки программирования ... FreePascal, Delphi... О_о
А кстати что это вообще? Анонс новой системы или ежегодный кубок таки будет?
P. S. Видимо всё же первое. Перепутал .Contest с .Алгоритм
Это просто тестовый раунд для новой системы. Даже не анонс, а вам интересный контест — нам тестирование и фидбэк.
А что плохого во FreePascal и Delphi?
Видимо в том, что ни то ни то не является языком программирования и если всё же имеется ввиду компилятор, то как бы C++ — не компилятор.
Эм... Free pascal и Delphi — совершенно разные языки программирования, основанные на паскале. В случае с C++ — это один язык программирования, для которого есть стандарт (ну т.е. есть несколько разных c++, но они и называются по-разному).
О_о я в ужасе. Чем с точки зрения СП отличаются FP и Delphi? Мне кажется также как MSVS от GCC — компилятором, в котором свои приблуды и тонкости.
"Приблуды" и "тонкости" в msvs и gcc — это баги или понты m$-разработчиков :) Жду с нетерпением, когда наконец clang на контестах появится, там багов сильно меньше.
FP и Delphi отличаются с точки зрения СП, если писать объектно-ориентированные программы. Я на паскалях уже лет 8 не писал, но в архивах контестов регулярно встречаю "шедевры", которые компилируются только на чём-то одном.
Ну так и я о том же. Попробуй-ка написать более-менее сложную программу, которая будет компилироваться и там, и там. Не всегда это получится, особенно если использовать какие-то библиотечки. Всё же речь о СП, а не об ООП (или это с каких-то пор сколько-то смежные темы?).
Компилироваться и на gcc, и на msvs? Любой неговнокод и не супер-системная-низкоуровневая вещь. Уж решения с контестов-то практически всегда компилируются и там, и там.
В смысле, смежные? Многие на контестах не хотят писать boilerplate-код, т.к. это портит стиль и в результате даёт говнокод на работе. Поэтому писать ООП-решения на контестах очень полезно. (Это не говоря уж о "классических" class Point, длинке, рациональных числах, etc.) И написанные на одном из паскалей, они не будут компилироваться на другом. (Олимпиадный пример: перегрузка операторов в delphi и fpc).
Не встречал людей, которые на олимпиадах углубляются в ООП, хоть не исключаю что такие есть. Кстати, библиотека iostream в MSVS поддерживает только 4-гиговые файлы, а в gcc 64bit размерность, ещё обычные массивы можно в gcc так создавать, что msvs отказывается компилить. Я не против, что в анонсе написано FP и Delphi, скорее я считаю правильным написать какие есть компиляторы, с указанием например gcc.
Сделайте, чтобы можно было код в textarea вставлять, так удобнее и быстрее. Иначе дело может обернуться вот так.
Хочется, чтобы задача, по которой сделан последний сабмит, и компилятор запоминались. Сейчас всегда сбрасывается на A и gcc.
Сообщение This submission duplicates run xxxx вылезает, даже если компиляторы, под которыми делались эти сабмиты, не совпадают. Так что получаем CE, выбираем верный компилятор и — ой!
Почему бы не показывать условия в браузере? А если все же качать pdf, лучше это делать сразу при нажатии на Problems. Ссылка Link там очень незаметная.
"Некоторым удобнее из отдельной вкладки"
А некоторым — неудобнее
1 и 3 попраавили.
5 — теперь на главной странице можно изменить отображаемое имя.
nevermind, нашел
Еле как виден сообщение при отправке , то есть OK, error.
Продолжение:
Выложите строки компиляции/запуска. Добавьте туда переменную ONLINE_JUDGE, сейчас ее вроде бы нет, а между тем это очень удобно.
С чем связано то, что закрытие входного потока на Java в стиле in.close() вызывает RE? Конечно, на олимпиадах все плюют на незакрытые ресурсы и неосвобожденную память, но такое поведение системы удивляет.
Чтобы дорешать задачи, надо создавать новый аккаунт? :)
Надеюсь надо будет не слишком сильно въёбывать над задачами?
Контест будет идти всего 2,5 часа. Никакого хардкора не будет.
Can it be display in English? I don't know Russian, I copy problems from foxit reader to google translate but is not suitable to translate
Problem C is 'Calculate (a+b) mod c, in long longs, answer should be in [0, c-1]'.
Это новый проект который будет стабильно проводить контесты?
Надеемся, что да)
Здорово, желаю вам удачи)
Спасибо!
В целом, (дальше пойдет совершенное IMHO):
1) Общий вид совершенно ужасен и не очевиден. Я минут пять искал, где же показываются результаты посылок? Кажется, что надо делать следующее:
1.1) Панельку с задачами слева жмем к верху. Туда же налево отправляем "submit", "monitor", "messages". Убираем ненужный tab control, который, к тому же, требует пару лишних кликов на переход к задачам от монитора. Эту панельку слева показываем всегда и везде
1.2) Название контеста убираем в правый столбик, там все равно места пропадает огромное количество.
1.3) Переименовываем "submit" в "submissions", поскольку основной способ посылать задачи все-таки из ее условия, а вот где смотреть посылки-то? Кстати, можно статус посылок по задаче под кнопкой "submit" в ней же и показывать.
1.4) Надпись "Link" меняем на более очевидную, содержащую слова вроде "statement".
1.5) Показывать успешность посылки по задаче так же, как и текущую задачу — значит, для текущей задачи скрыть этот параметр. Можно показывать результат как-нибудь по-другому.
2) Как верно заметил dalex , textarea для сабмита очень очень нужна.
2.1) (на подумать) Кстати, при посылке через textarea с вероятностью 99% можно проверкой в духе "содержит #include — значит, плюсы" определить язык и написать пользователю, что он, вообще-то, с языком ошибся — где-нибудь над кнопкой сабмит.
3) (из области фантастики) Вообще, хорошо бы виртуальные контесты запускать в положении "за минуту до старта". Это позволяет открыть нужные вкладки (вроде "монитор"), отменить старт, если передумал, и так далее. Мелочь, а психологически намного лучше.
Про 1) — немного порисовал, получилось вот так. Поле слева от пунктов в "status" можно использовать, когда есть страшные и коварные rejudge, оповещения об изменении условия, etc.
Спасибо за пожелания, особенно за макет!
Большую часть постараемся реализовать в ближайшее время.
Было бы неплохо разослать напоминалки накануне...
За 24 часа обязательно разошлём.
Нельзя перепослать одно и тоже решение под разным компилятором. Вроде бы баг.
Уже писали (http://codeforces.net/blog/entry/5032#comment-101168)
Получаю PE при такой работе с файлами:
В директории откуда-то есть файл "input.txt"? Или вообще к файлам обращаться нельзя?
Хотелось бы чтоб работало.
Fixed.
Но в будущем мы подумаем о такой возможности.
На Java, кстати, то же самое было, валится с RE при попытке работы с файлами. Код такой:
Если не изменяет память — во многих системах попытка использовать пакеты java.io.File.* неизбежно вызывает RE/SV по соображениям безопасности.
Но не в этой. Подозреваю, что дело в том, что файл input.txt уже был открыт и перенаправлен на stdin программе; ну либо у него были такие permissions, что программа с ним ничего сделать не может (хотя не уверен; не знаю в деталях, какие именно системные вызовы происходят в недрах java.io.File).
А нельзя посмотреть список участников, зарегистрированных на контест?
Сегодня такая возможность появится.
Готово. Ссылка в списке контестов.
При попытке войти с вк или gmail ошибка: "Произошла ошибка Неавторизованное обращение к сервису. Потребитель неизвестен."
Молодцы, круто! А блоги-то будут? :)
Спасибо) Какие блоги?)
Ждем, ждем, ждем!)
хотелось бы видеть упавшие тесткейсы на дорешивании
Одному мне кажется, что использовать русский язык для текста вверху страницы и использовать английский язык для всего остального в интерфейсе как минимум странно?
По-русски, кстати, написана вся страница http://contest.yandex.ru/contest/ContestList.html
Ага, подозрительно похоже на баг. Особенно учитывая, что такое происходит несмотря на
<meta name="gwt:property" content="locale=ru">
.Это не баг. Еще не все переведено.
Ок. Просто оно было переведено даже на яндекс-тренировках, хотя (насколько я вижу) весь UI переделан, как в интерфейсе участника, так и в админке. Неплохо поработали :) Такими темпами оно в обозримом будущем может презвойти codeforces по функциональности.
Принцип работы локализации тоже был полностью переделан.
Скажу по секрету, так же переписаны почти все внутренности.
По крайней мере, на уровне данных мало что изменилось, судя по происходящему в админке; вот на уровне плагинов — много чего. Но вообще, получается, у вас очень хорошая скорость — так держать :) (кстати, вы не планируете забрать у меня админские права? мне лучше зарегать второй аккаунт, если я захочу участвовать в контестах?)
Функциональность — почти ничто, она просто должна не мешать. Главное — контент.
, который на codeforces в силу разных причин очень своеобразен и размазан.
Ну на codeforces например долгое время не было виртуальных контестов, и поэтому для тренировок он не был пригоден. Так что функциональность в некоторых случаях очень важна.
Will problems be only in russian in the actual contest??
We've got problems in English. Tell me what's your login you registered on the contest? We'll cancel your registration in the virtual contest, so you can register and enter again.
Thanks a lot...I have messaged you ..
Спасибо всем за обратную связь. Благодаря вашим комментариям, за сегодня мы сделали следующие изменения:
До контеста 17 августа планируем сделать ещё ряд улучшений.
Ещё несколько небольших замечаний:
1) Похоже, тестирующие бекенды вешаются неприлично просто (см. run id 5929, 5942). По крайней мере, самбиты имеют статус running уже >10 минут, надеюсь, это баг в отображении результата, а не зависнувший бекенд.
2) Idleness limit огромный, потенциальные злоумышленники смогут напрочь застопорить тестирование.
3) Memory limit компилятора слишком мелкий, на относительно безобидные программы можно получить "collect2: ld terminated with signal 9 [Killed]".
4) http://contest.yandex.ru/testsys/blahblah показывает tomcat'овскую 404 вместо яндексовской.
5) Если страницу отмасштабировать в браузере (т.е. например поставить масштаб 50% вместо 100%) — вёрстка съезжает. Видимо, далеко не весь UI был переделан :(
6) Если послать длинное сообщение жюри — то оно проглатывается без каких-либо warning'ов, но в списке не появляется.
Upd: 7) выключите стектрейсы на продакшн-tomcat'е! (по крайней мере для 500ой ошибки оно показывает красивые подробные стектрейсы)
Скорость исправлений у вас офигенная :) 5 — хм, у меня и в хроме съезжает. Например, gwt-шная табличка на вкладке Problems, при маштабировании перестаёт быть выравненной с lego-шапкой (впрочем, на моём экране она и без масштабирования не совсем выравнена).
И правда. Попробую исправить. Но табличка там не gwt-шная)
Самое прикольное — с gwt-шной была ровно такая же проблема :)
Пункты 4 и 7 исправлены
Не, 7ой жив. Идем по ссылке http://contest.yandex.ru/testsys/DataSupplier?action=source&runId=5757 (если нет прав на просмотр сабмита 5757), видим, что BinaryFilesServlet.serviceViewSource() кидает "ServletException: Invalid user id". Ну т.е. 500ая ошибка tomcat'а всё ещё обрабатывается tomcat'ом, и, хуже того, в tomcat'е включен показ стектрейсов.
Мелочь, но всё же: может лучше вообще отказаться от выделения цветом выбранной задачи? Поставить например галочку или стрелочку рядом с выбранной задачей, или в рамочку обводить. Или наоборот, выбранную выделять цветом, а результирующие цвета (светло-зелёный и красный) заменить на значки какие-нить. А то светло-зелёный и зелёный путают, нужно проклацать, чтобы определить на какой я щас задаче, и к тому же если по текущей задаче были посылки нельзя сразу определить какой вердикт по ней, нужно в сабмишн лезть.
Кстати, может быть, добавить MS C++? Или это проблемно?
Планируется ли поддержка C#?
Будет ли поддержка Boost, как на TopCoder?
http://apps.topcoder.com/forums/?module=Thread&threadID=714905&start=0&mc=4#1402401
может быть, имелись ввиду штуки из SGI?
А виртуальный раунд "A+B virtual" сейчас поддерживается, а то без авторизации можно посмотреть таблицу результатов, а с авторизацией пустая страница?
Не могу попасть на A+B virtual, на странице http://contest.yandex.ru/contest/ContestList.html нет ссылки. скриншот
Вижу тоже самое. Что я делаю не так?
Это наш баг. Чиним.
Проверьте сейчас. Должно работать.
Проверьте сейчас. Должно работать.
Все работает. Спасибо.
Ожило. Ушел решать А+Б.
Планируется какая-либо система рейтинга участников?
Это пока тестовый раунд, а до регулярных еще далеко. В целом планируется.
Мне кажется, что эта мелочь сильно приумножает ажиотаж вокруг соревнования. Не мне вам рассказывать...)
Мы это хорошо понимаем :) Но на один раунд в ней смысла нет. И наверно всем хочется чего-то новенького, а не просто еще один рейтинг.
Было бы круто иметь какой-то общий рейтинг на основе TC/CF/GCJ/SN*S и т.д.
Это кажется к ahmed_aly :)
Я больше на Снарка надеюсь
Где-то в районе после петрозаводских сборов что-то подобное на базе TC/CF/SN*S попробую сделать. Ранее, учитывая то, что сейчас придётся сервер SN*S переносить с МГУ-шного сервера (похоже, проблемы с connectivity внешнего мира с мехматской сеткой), вряд ли что-то получится...
А технически проблема вытаскивать полностью результаты с TC/CF?
Эта часть у меня уже есть.
Было бы неплохо иметь возможность посылать решения на C++11. Судя по всему, в системе установлен достаточно новый GCC, так что достаточно только добавить
-std=c++11
или-std=c++0x
к параметрам компилятора.Насчёт Java.
ArrayList<String> x = new ArrayList<>();
, и нарвался на CE.А dcc — это дельфовый компилер? А какой он у вас? :)
Вообще можно ко всем языкам указать версию компилятора и строку компиляции.
А как на счет взламывания чужих решений?
как Вы себе это представляете?
Ну, вообщем, система взломов может быть похожа на систему TopCoder'а или же Codeforces'a, но её можно и улучшить. Например, за какое-то количество удачных взломов по данной задаче участнику можно давать какое-то количество бонусных баллов. Больше о взломе чужих решений Вы можете прочитать здесь.
Там тестирование сразу на всех тестах
ссылками на правила кидаетесь, а сами читать их не умеете. в cpr вероятность взломать ас решение равна нулю, а значит смысла в этом нет.
AntiHashSet доказывал обратное :D
А какое (глобально) видение проекта Яндекс.Contest? Например, собираются ли организаторы проводить регулярные первенства, привлекать авторов и так далее?
Проводить регулярные первенства и привлекать авторов — собираемся. Правда, пройдет еще какое-то время, прежде чем мы будем к этому готовы. Есть еще много планов помимо этого, но пока что их рано раскрывать, потому что они сильно могут измениться по пути.
Глобально хочется на базе проекта интегрировать различные олимпиадные, образовательные и научные проекты Яндекса и некоторые проекты/события, которые Яндекс поддерживает. Также планируется делать Яндекс.Contest максимально открытым и сотрудничать напрямую с российскими тренерами, развивать олимпиадную часть под их "заказ". Если все это получится, то и олимпиадная составляющая получит развитие, и появится ее сочетание с образовательной составляющей, с прикладными исследовательскими задачами. Делаем и "социальную" составляющую. Насколько это "взлетит" — посмотрим, но, знаете вы это или нет, у Яндекса очень много академических проектов, которые мы делаем либо сами, либо содержательно поддерживаем (в смысле, не только деньгами), и кажется, что если их интегрировать в одну систему, то целое будет больше, чем сумма частей.
Кстати, учитывая, что проект мы делаем в первую очередь не для себя, а для сообщества, то можно делать "заказы" от себя, и если они востребованы, получат поддержку от других участников, то это повлияет на то, в каком направлении будет развиваться проект.
Заказ №1:
Достать последнюю серверную винду и добавить компилятор Visual Studio 2012 для .NET 4.5.
У Яндекса есть исторический шанс сразу обойти и топкодер и кодефорс и вообще всех, ведь никому еще не удалось это сделать :)
А вы умеете на "последней серверной винде" безопасно запускать программы, при этом не создавая на каждый запуск виртуальную машину по много секунд? :) Я вот не умею и ни разу не слышал о таком способе. Что-то мне подсказывает, что это основное препятствие к созданию безопасных тестирующих систем, использующих винду.
Я думаю было бы желание что-то делать по этому поводу, и тогда все получится. Задача ведь не безопасно запускать любые программы, а безопасно запускать код на C#. На то он и managed code чтоб за ним было легко следить...
Даже если разработчики захотят делать разные способы обеспечения безопасности для разных языков (что имхо не очень хорошая идея и большой геморрой) — всё равно останется проблема закрытости винды и .net'а. Microsoft — всё же прямой конкурент яндекса, и я на месте яндекса на своих серверах не стал бы запускать закрытые программы конкурентов с фиг знает каким количеством бекдоров.
API для получения семпл тестов/ml/имен входного и выходного файла. Желательно с возможностью делать это от лица юзера (для виртуальных контестов)
Судя по количеству плюсов, востребованная фича.
Сделаем. Это несложно. Как только реализуем какой-нибудь способ авторизации не через браузер. Не думаю, что вам захочется посылать нам логин/пароль в параметрах запроса) Будет работать для любых контестов, на которые есть доступ через браузер.
Пара заказов от меня:
Завести некий список best practices и следовать ему, в частности:
~~~~~
Да и вообще хочется иметь страничку в духе "что мы вообще об этом думаем", после которой остается минимум вопросов.
~~~~
UP Через 10 минут начало.
Мне кажется, таймер обратного отсчета лучше поместить во вкладке "Соревнования". Возможно, это субъективно.
а лучше вообще прикрепить ко всем страницам contest.yandex.ru, чтобы на каждой было сверху в углу видно сколько до ближайшего контеста
будет ли сортировка задач по сложности?
В чем заключается задача А? У меня выходило, что всего возможно три графа, это правильно?
Возможен любой граф, у которого степень всех вершин 3 и больше 2 вершин.
А если мы делаем развязку, то одна вершина, та что X разве не выпадает из графа и степень соответственно её не становится 0?
Она вообще перестает существовать. А речь лишь о существующих)
Блин :( Что за подстава... Правильно решал задачу, а вот из-за того что бегло хоть и не один раз читал, не заметил, что вершина X удаляется :(
Число вершин должно быть четным и быть >= 4.
На контесте почему-то подумал, что правильные числа вершин — 4,7,10,..., когда они на самом деле 4,6,8...
Если степень каждой вершины равна 3, то число вершин всегда чётно.
Проверку на число вершим можно не делать, так как по условию ребер не более k(k-1)/2
Как доказать достаточность этого критерия?
Можно доказать, что из любого графа со степенью вершин 3 можно сделать любой другой, используя "перестройку". Значит всегда можно добавить нужное число вершин "строительством развязок" и сделать нужный граф.
А как это доказать? Если степень не 3, то нельзя — понятно, а почему верно, что если 3, то можно?
Пожелание: чтобы показывалось время в турнирке и количество неправильных посылок (в том числе по сданным задачам), если это напрягает таблицу, то возможно галочку, которая показывает/скрывает эту информацию.
Замечание: хочется, чтобы на странице задачи внизу были все посылки по этой задаче.
Когда посылаешь со страницы задачи, если она тестируется, там видно RUNNING, но когда вердикт становится известен, все пропадает. Приходится идти на вкладку Submits чтобы посмотреть вердикт.
Если не нажимать F5, то результат появится прямо там.
В будущем постараемся сделать удобнее.
кстати иногда почему-то после посылки всё исчезает на 30сек-1мин, не грузятся ни задачи, ни таблицы, F5 не помогает, опера.
В хроме такое тоже бывает
Пожелание: хотелось бы, чтобы в мониторе отображалось время посылки и количество неудачных попыток, если задача сдана.
А теперь смотрим сюда http://codeforces.net/blog/entry/5032#comment-101902 :)
Ну мож я печатаю медленно ^_^
Можно ли решить E быстрее 10^8?
Не запоминает язык
Thank you everybody for the participation in our contest! We hope you enjoyed it. :)
The final standings are presented here.
Any comments and requests you can still send us through the feedback form or leaving here in comments.
I think the problem content (in English) has some mistake (ex: "_if there are roads AX, BX, CX instead of the square X three squares P, Q
и Rare
built, provided that there appear six roads (AQ, BP, CR, PQ, QR, PR) instead of three ones mentioned above._" (Problem A), ...).Hope contest setter will type it carefully in the next contest. :-)
Thanks for the contest :-)
А посмотреть задачи и результаты можно только тем, кто зарегистрирован на соревнование? И, если это не сделал вовремя, то уже никак не посмотришь? Или я что-то не так делаю?
Сейчас результаты показываются, если не залогинен.
Ссылку дайте, пожалуйста. Я попадаю сюда http://contest.yandex.ru/contest/Contest.html?contestId=60&tab=monitor и никакой таблицы с результатами не вижу.
Очень странно. Ссылка правильная. Какой браузер?
FireFox 3.6, IE 8. В обоих одинаково.
И еще, когда я смотрю список зарегистрировавшихся по ссылке http://contest.yandex.ru/contest/plugins/list_participants?contestId=60&locale=ru я вижу первую страницу. Ссылки с неё на вторую и третью страницу обе выглядят как http://contest.yandex.ru/contest/plugins/list_participants?contestId=60&locale=ru# , и по ним также отображается первая страница.
Баг нашел, через некоторое время исправлю.
Но очень советую обновить браузер.
Интересно, а Вы сможете добавить функционал "смотреть результаты друзей" как на CodeJam или CF? Mail.ru для RCC пока вроде не сделали...:-( А фича то может быть популярной.
Mail.ru для отборочного тура нечто похожее сделали.
Я правильно понимаю, что "Last time" — это "Remaining time"?
Вроде бы вы планируете проводить командные контесты. Хочется иметь возможность создавать команды без лишнего аккаунта и писать потом с любого аккаунта участника команды.
Такая возможность безусловно будет.
Я написал раунд виртуально. Можно как-то увидеть себя в таблице, возможно с другими вирутальными участниками?
Раз уж подняли тему. Интересно, а на что намекают теги турнир трех чф, acm icpc subregional, quarterfinal?
Это я запалился, когда захотел для удобства, создавая новый пост — см. http://codeforces.net/blog/entry/5406 ,- взять за основу предыдущий, чтобы не вспоминать правила форматирования — и сохранил как черновик новый пост в старом :) Потом пришлось воспользоваться кэшом Яндекса, чтобы восстановить исходный текст, потому что не нашел, как на Codeforces старую версию поста восстановить, если случайно затер уже опубликованный пост черновиком. Кроме того, не понял, что было в тот момент, когда этот пост был в виде черновика с новым текстом — вроде он как опубликованный пост вообще перестал отображаться :)
а как решается задача B из virtual A+b?