Блог пользователя MikeMirzayanov

Автор MikeMirzayanov, 12 лет назад, По-русски
  • Проголосовать: нравится
  • +15
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Сегодня состоится финал VK Cup 2012, Финал! Мы желаем удачи всем участникам, а болельщикам — насладится интересным соревнованием. На открытии финала кубка в своей приветственной речи генеральный директор "В Контакте" Павел Дуров анонсировал апгрейд призового фонда. Я начинаю по-настоящему жалеть, что я не участник! Финалисты поборются за:

  • 1 место — $30000
  • 2 место — $20000
  • 3 место — $10000
  • 4-5 места — $2000
  • 6-10 места — $1000

Удачи! Желаем только положительных эмоций. На старт! Внимание! ...

UPD: Соревнования завершено! О его ходе и церемонии закрытия, я полагаю, совсем скоро напишет Alex_KPR. Всем спасибо за участие и интерес! Вот полные результаты.

Поздравляем победителей. Тройка лидеров:

  • sevenkplus (Yuzhou Gu) Китай
  • s-quark (Qinshi Wang) Китай
  • tourist (Геннадий Короткевич) Беларусь

UPD: Как вы уже успели заметить, 16-го июля в 19:00 стартует неофициальная онлайн-версия финала VK Cup 2012. Любой желающий может принять участие и почувствовать себя на месте финалиста. Раунд будет нерейтинговым. Если вы решали или в какой-то степени знакомы с задачами, пожалуйста, воздержитесь от участия. Все задачи появятся в архиве и будут доступны всем желающим.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +76
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Всем привет!

Сегодня, 14-го июля, состоится пробный тур финального раунда чемпионата VK Cup 2012. Функциональность Codeforces сильно ограничена как для внешних посетителей, так и для участников финала. Пожалуйста, сохраняйте спокойствие :-)

Участникам финала не надо регистрироваться на раунд. Никаких особых напутствий нет – вас ждет привычная система с привычными настройками. Да, система оценки сложности задач будет динамическая. Напоминаю, что вы не должны пользоваться любыми электронными девайсами, личными записями, общаться друг с другом и прочее. Вы не должны нарушать какие-либо правила Codeforces или VK Cup. Давайте отрепетируем завтрашний ответственный день во всех деталях.

MikeMirzayanov и жюри VK Cup 2012

Полный текст и комментарии »

  • Проголосовать: нравится
  • +45
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Всем привет!

Совсем скоро состоится финал чемпионата по программированию VK Cup 2012. Оргкомитет и жюри работают не покладая рук, чтобы мероприятие понравилось участникам.

Напоминаю, что финал пройдет с 13-го по 16-е июля, а примут участие в нем лучшие 50 участников по результатам VK Cup 2012 Раунд 3. Как только мы окончательно поймем, у кого получается приехать, список финалистов будет опубликован.

Вот некоторая информация из штаба организационного комитета, которой нельзя не поделиться. Участники финала будут размещены в прекрасном отеле Кемпински, в самом центре Санкт-Петербурга на берегу Мойки. Отель находится в пешей доступности от офиса ВКонтакте, так что никаких изнурительных автобусов и знакомства с пробками Питера! Будете смотреть фотографии отеля – обратите внимание на ресторан на крыше с видом на Дворцовую площадь.

Точное расписание еще не определено, кое-что зависит от времени приезда участников и сложности задач (да-да, финальный раунд, возможно, будет иметь неклассическую продолжительность), но общий план такой:

  • 13 июля: Заезд, ужин, знакомства и развлечения.
  • 14 июля: День в основном будет посвящен неофициальному развлекательному мероприятию Code Game Challenge (special for VK Cup 2012). Также в этот день планируется непродолжительный пробный тур. Вечером, в дополнение к отличному ужину, состоится Code Game Challenge Show — просмотр турнира стратегий на большом экране.
  • 15 июля: Основной день соревнования (удачи!). Вечером награждение победителей и чествование всех финалистов (уверен, все останутся довольны :));
  • 16 июля: Отъезд домой.

ВКонтакте и Codeforces очень рады большому интересу школьников и студентов к чемпионату VK Cup 2012. Несмотря на то, что на соревнование приглашались только молодые программисты (возраст участников – не более 23 лет), зарегистрировались на чемпионат без малого 6000 участников из 91 страны! Мы очень рады, что почти все прошедшие в финал нашли возможность приехать в Санкт-Петербург. Победителей ждет достойная награда, тем более что мы рады сообщить: призовой фонд чемпионата увеличен. Есть за что побороться и приложить максимум усилий для победы!

  • 1 место — $20000
  • 2 меcто — $10000
  • 3 место — $5000
  • 4-5 место — $2000
  • 6-10 место — $1000

Легкой дороги финалистам,
Оргкомитет и жюри VK Cup 2012

Вопросы и ответы

  • По каким правилам будет проходить финальное соревнование? Финал будет раундом по оригинальным правилам Codeforces, продолжительность финала — 2.5 часа. Возможно, будет использована динамическая оценка стоимости задач.
  • На каком компьютере мы будем писать контест? Каждому участнику будет предоставлен специально подготовленный ноутбук, подключенный к монитору, внешней мыши и клавиатуре. Пользоваться своими ноутбуками нельзя. Разрешается привезти с собой USB-клавиатуру, если она не содержит сложного функционала, который может дать преимущество на контесте.
  • Какая ОС? Что будет стоять на рабочей станции? Мы планируем предоставить участникам возможность выбрать операционную систему — Windows или Ubuntu. На обеих системах будет установлен широкий спектр разнообразных программ, мы надеемся удовлетворить все основные требования.
  • Можно ли использовать заготовки? Нет, но на основном соревновании вы можете использовать код, который вы напишите на пробном туре или CodeGame.

Немного фотографий

Полный текст и комментарии »

  • Проголосовать: нравится
  • +91
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Общая информация

Саратовский государственный университет в первой половине августа проводит международную летнюю студенческую школу по программированию. Продолжительность школы — десять дней, школа пройдет с 1-го по 11-е августа.

К участию приглашаются как команды из двух-трех человек, так и индивидуальные участники.

Школа пройдет в живописном месте, на одной из саратовских баз отдыха на берегу Волги. Участники будут расселены в уютных номерах по 2-4 человека и обеспечены трехразовым питанием. На территории базы имеется собственный пляж и спортивные площадки.

В программе школы запланировано 10 рабочих дней, включающих ежедневные пятичасовые тренировки, разборы задач, дорешивания. Будет прочитана серия лекций. Учебная программа рассчитана на студентов младших и средних курсов, которые хотят достичь значительных успехов на соревнованиях по программированию.

Примерные темы лекций, на все темы будет обширная практика (возможны изменения):

  • декартово дерево, декартово дерево по неявному ключу
  • паросочетания в графах и смежные задачи
  • потоки в графах, потоки минимальной стоимости
  • основы теории чисел: расширенный алгоритм Евклида, решение сравнений, тесты на простоту, китайская теорема об остатках
  • быстрое преобразование Фурье

Организационный сбор составляет 16000 рублей на одного участника. Кроме того, каждая команда или индивидуальный участник должны привезти с собой ноутбук (с поддержкой WI-FI). В стоимость оргвзноса включается проживание на базе отдыха, трехразовое питание, учебная программа.

Заинтересованным участникам и командам необходимо пройти предварительную регистрацию на сайте http://acm.sgu.ru/sazanka-2012/ до 15 июня 2012 года. Не откладывайте регистрацию, так как количество мест ограничено. Полностью и аккуратно заполните форму регистрации, введите информацию по каждому члену команды.

Дополнительную информацию можно получить по телефону 88452522711 или по электронной почте mirzayanovmr[символ с кодом 64]gmail.com.

О Саратовском государственном университете

Саратовский государственный университет регулярно добивается значительных успехов на соревнованиях по программированию. Ниже приведены основные достижения университета на международных соревнованиях:

  • 2002 г. Титул чемпионов Европы, комплект серебряных медалей на чемпионате мира ACM-ICPC 2002.
  • 2003 г. Комплект серебряных медалей на чемпионате мира ACM-ICPC 2003.
  • 2006 г. Титул чемпионов мира, чемпионов Европы, комплект золотых медалей на чемпионате мира ACM-ICPC 2006.
  • 2007 г. Комплект серебряных медалей на чемпионате мира ACM-ICPC 2007.
  • 2008 г. Чемпионы России и NEERC.
  • 2009 г. Комплект золотых медалей на чемпионате мира ACM-ICPC 2009.
  • 2010 г. Комплект серебряных медалей на чемпионате мира ACM-ICPC 2010.
  • 2011 г. Комплект серебряных медалей на чемпионате мира ACM-ICPC 2011.

Кроме того, студенты и тренеры СГУ неоднократно становились участниками финальных этапов соревнований TopCoder, Google Code Jam и Facebook Hacker Cup. Саратовский государственный университет входит в лучшие университеты мира по рейтингам TopCoder, Codeforces и рейтингам на основе результатов участия в международном студенческом командном чемпионате ACM-ICPC.

Руководитель Центра олимпиадной подготовки
Саратовского государственного университета, тренер команд. 

М.Р. Мирзаянов

Полный текст и комментарии »

  • Проголосовать: нравится
  • +88
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Так как на сайте Russian Code Cup нет приличного дорешивания и тем более виртуальных контестов, только что прошедшая первая квалификация добавлена в тренировки. Итак, встречайте в тренировках 2012 Russian Code Cup, Qualification 1.

UPD: Добавили вторую квалификацию — 2012 Russian Code Cup, квалификация 2.

UPD: Добавили третью квалификацию — 2012 Russian Code Cup, квалификация 3.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +102
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Всем привет!

Пришла пора опубликовать фотографии с прошедшего чемпионата. Напоминаю, 27-го апреля в гостеприимном офиса КРОК прошел финал Чемпионата Москвы и МО. Так как Чемпионат был открытым, то присутствовали не только москвичи — были участники из других городов России и даже из ближнего зарубежья.

Ниже много мегабайт фотографий!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +59
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Теперь в пост можно совсем просто вставлять фотоальбомы из Picasa. Альбом должен быть публичным, доступным для просмотра по ссылке. Вставлять надо вот так [photoalbum:URL], например так [photoalbum:https://picasaweb.google.com/114907919772955385569/2012?authuser=0&feat=directlink].

Просьба публиковать фотоальбомы, посвященные соревнованиям по программированию и вокруг этого, интересные широкой публике.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +8
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Всем привет!

Сегодня вас ждет раунд по старым-добрым ACM-ICPC правилам. Да, это будет рейтинговый контест для второго дивизиона, а участники из первого дивизиона смогут принять участие вне конкурса.

Задачи для вас делали Nerevar, natalia, MikeMirzayanov и Edvard, а Delinur перевела задачи. Спасибо всем за помощь!

Желаю удачи!

UPD: Рейтинг будет обновлен позже.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +25
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Всем привет!

Напоминаю, что 3 апреля в 12:00 начнется квалификационный раунд Открытого чемпионата Москвы и МО по программированию (КРОК).

Чтобы пройти в Раунд 1 вам надо принять участие в квалификации. Из квалификационного раунда в Раунд 1 проходят все участники, набравшие не меньше баллов, чем участник на 1000-ом месте (при условии положительного числа набранных баллов). В раунде вас ждут несколько несложных задач, примерно расположенных по возрастанию сложности. Во время квалификации задачи тестируются системой только на претестах, а системное тестирование состоится после окончания квалификации (которая идет сутки). Претесты не покрывают все возможные случаи входных данных, так что тщательно тестируйте свои программы! Взломов, падения стоимости задач во время квалификации нет.

Раунд продлится 24 часа, но это не значит, что мы призываем вас все это время провести за решением задач. Мы надеемся, что большинство участников справятся с задачами (или с большинством задач) за более короткий срок. Такая длительность раунда выбрана для того, чтобы каждый нашел удобное время для участия.

До окончания раунда категорически запрещается публиковать где-либо условия задач/решения/какие-либо мысли и соображения о них. Запрещено общаться на тему задач, обсуждать условия и проч. Будьте честными и пусть в Раунд 1 пройдут сильнейшие. Когда квалификация будет завершена, можно будет обсуждать задачи и решения.

Зарегистрироваться на раунд можно в любое время вплоть до его окончания. Результаты раунда не будут влиять на рейтинг, внеконкурсное участие в раунде не разрешается. Впрочем, все задачи попадут в архив после окончания раунда.

Желаем удачи и удовольствия от решения задач!

UPD: Соревнование закончено! Спасибо за участие. В скором времени будут удалены нарушители порядка и результаты станут официальными. Неофициально — проходной балл в Раунд 1 составляет 1950 баллов.

UPD 2: Из таблицы результатов были удалены явные читеры и люди, кому не исполнилось 18 лет на момент регистрации. Если ваши результаты были удалены по ошибке, свяжитесь со мной для прояснения ситуации. Теперь проходной балл составляет 1900 баллов.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +33
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Всем привет!

Добро пожаловать на VK Cup 2012 Уайлд-кард раунд 2!

Вас ждет 7-дневное соревнование по решению всего одной задачи. Мы полагаем, что задача не имеет точного эффективного решения. Чем более оптимальные решения будут находить ваши алгоритмы, тем больше баллов вы получите. Конечно, это не все подробности. Полный текст условия и правил оценки вы сможете прочитать сразу после начала соревнования.

В основном конкурсе этого раунда участвуют те, кто официально прошел в VK Cup 2012 Раунд 2, но не прошел в VK Cup 2012 Раунд 3. По результатам VK Cup 2012 Уайлд-кард раунд 2 лучшие 25 участников завоюют право участия в VK Cup 2012 Раунд 3. Все остальные члены сообщества могут принять участие вне-конкурса, just for fun.

Во время соревнования вы можете сделать произвольное количество попыток решения, но на системных тестах будет тестироваться ваша последняя попытка, которая прошла хотя бы один тест.

Удачи! Пусть победит сильнейший!

P.S. Я не могу не оставить это здесь. Во время соревнования категорически запрещается публиковать/обсуждать алгоритмы решения задачи, подходы к решению, делиться какими-либо выводами о задаче. Нельзя делиться результатами (в том числе просто сообщать баллы) запуска своих решений на каких-либо тестах. Запрещено публиковать инструменты для упрощения или автоматизации процесса решения задачи.

И да, огромное спасибо Nickolas за великолепную задачу!

UPD: Контест закончен, тестирование завершено. Поздравляем первые 25 мест — результаты, вы вышли в VK Cup 2012 Раунд 3!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +52
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Добрый день.

VK Cup 2012 Round 2 будет проведен в двух редакциях:

  • официальной VK Cup 2012 Раунд 2 — для прошедших в этот раунд участников VK Cup 2012 и участников из первого дивизиона (последние будут участвовать вне конкурса),
  • спец. редакции для второго дивизиона VK Cup 2012 Раунд 2 (неофициальная редакция для Div. 2) — для участников из второго дивизиона, кто не является официальным участником VK Cup 2012 Раунда 2.

В каждой из этих редакций будет пересчитан рейтинг (отдельно). В первой из них рейтинг будет пересчитан на основании общих результатов участников в конкурсе и вне, изменению рейтинга подвергнутся оба вида участников. Во второй редакции все проще — в ней все участники одинаковы и по их результатам будет пересчитан рейтинг.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +43
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Всем привет.

Идея динамической стоимости задач не нова. На сколько я помню, что-то такое обсуждалось еще в 2000-ные, однако на этом все и закончилось. С тех пор тема еще несколько раз всплывала — один из последних экспериментов здесь.

Зачем вообще нужны разные стоимости задач? Как верно подметил RAD, они в самом деле необходимы для контестов, где решение может упасть на системном тестировании или около того. Например, Вася решил простую A, а Петя решил простую A и очень сложную B. У Пети A упала, а B он решил попозже (и может не с первой попытке). В таком случае, если задачи были равны по стоимости, то Петя займет место ниже Васи, что как-то несправедливо.

На Codeforces задачи оцениваются в кратное 500 количество баллов: 500, 1000, 1500 и т.д. Обычно мы стараемся подбирать 5-задачные наборы, разнообразные по сложности. В таком случае, каждый квалифицированный на контест найдет себе задачи по силам и такие, над которыми надо подумать. Традиционный комплект задач включает в себя задачи 500-1000-1500-2000-2500.

На практике все не так просто. Иногда оказывается, что авторы и тестеры не угадывают сложность задачи с точки зрения массового участника. Как быть?

Эксперимент состоит в следующем. Назначать стоимость задачи динамически в зависимости от числа решивших эту задачу. Во время основного времени контеста здесь будут учитываться решения типа "Претесты пройдены", а по его окончанию — типа "Полное решение". Конечно, в расчет будут идти только официальные участники раунда.

Идея такая:

  • если задачу решили от половины участников до всех участников раунда, то она стоит 500 баллов,
  • если задачу решили от четверти до половины участников участников раунда, то она стоит 1000 баллов,
  • если задачу решили от одной восьмой до четверти, то она стоит 1500 баллов,
  • и так далее.

Конечно, речь идет о максимальной стоимости задачи. Падение в минуту вычисляется по традиционной формуле X/250 (учитывается X на момент построения текущего положения участника). Более формально в таблице:

Доля решивших Максимальный балл за задачу
(1/2, 1] 500
(1/4, 1/2] 1000
(1/8, 1/4] 1500
(1/16, 1/8] 2000
(1/32, 1/16] 2500
[0, 1/32] 3000 (макс. балл за задачу)

При подсчете числа участников учитываются те, кто сделал хотя бы одну попытку в этом раунде. Начальная стоимость (до какой-либо попытки по ней) любой задачи — 3000.

Вот и все! Как видите идея очень проста и не перегружена формулами и подробностями. Чтобы как-то с ней познакомиться сегодня по ссылкам "Результаты участников" для контестов по правилам Codeforces будут открываться результаты, посчитанные по таким правилам. Это временное изменение, вскоре мы вернем все назад.

Сегодняшний Codeforces Round 113 (Div. 2) будет использовать такие экспериментальные правила. Мы гарантируем, что задача A будет в нем именно та, которую мы считаем наиболее простой. Порядок остальных задач — случайный. Удачи!

Динамическая стоимость задач с шагом 250 баллов (поддержка реализована в марте 2015 г.)

Поддержана более плавная реализация динамической стоимости задач с шагом 250 баллов. Также как и раньше, при увеличении количества сдавших задачу в два раза, максимальная стоимость задачи уменьшается на 500 баллов. Теперь также при увеличении количества сдавших в раз, стоимость падает на 250 баллов. Таблица наже примерно иллюстрирует зависимость максимальной стоимости задачи от доли сдавших ее.

Доля решивших Максимальный балл за задачу
(0.707, 1] 250
(0.500, 0.707] 500
(0.353, 0.500] 750
(0.250, 0.353] 1000
(0.176, 0.250] 1250
(0.125, 0.176] 1500
(0.088, 0.125] 1750
(0.062, 0.088] 2000
(0.044, 0.062] 2250
(0.031, 0.044] 2500
(0.022, 0.031] 2750
[0, 0.022] 3000

Полный текст и комментарии »

  • Проголосовать: нравится
  • +126
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Компания КРОК приглашает талантливых и прогрессивных специалистов (от 18 лет) принять участие в Открытом чемпионате Москвы и Московской области по программированию.Чемпионат проводится на базе проекта Codeforces. В работе жюри и технического комитета принимает участие Саратовский государственный университет.

Соревнование будет состоять из нескольких дистанционных отборочных этапов (3-4, 6 и 20 апреля) и финального тура, который пройдет 27 апреля в Москве в офисе компании КРОК. На финале чемпионата также состоится игровой раунд. Участники финала не обязательно должны быть жителями Москвы и Московской области, но дорога до места проведения финала организуется и оплачивается ими самостоятельно.

Победители чемпионата получат ценные призы: 100000 рублей за первое место и ноутбуки Apple MacBook Pro за второе и третье места. Участник, занявший первое место в игровом раунде, будет награжден Apple MacBook Air.

Для того чтобы принять участие в чемпионате необходимо пройти регистрацию на странице http://www.crocok.ru/championship/ до 4 апреля 2012 г.

Подробности о проекте можно также узнать на сайте http://crocok.ru в разделе "Чемпионат по программированию". Официальный язык чемпионата — русский. Задачи будут публиковаться на двух языках — русском и английском.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +65
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Добавил в тренировки VI Открытая олимпиада школьников по программированию, заочный этап. Специально засек — с момента открытия страницы с тестами и условиями в браузере до финальной публикации контеста прошло 17 минут :)

Почему-то организаторы не публикуют авторские решения. По этой причине тренировка добавлена без капитальной проверки тестов и т.п. Может организаторы опубликуют решения? А еще лучше выложат архив контеста прям из Полигона (вроде бы контест создавался там).

Если кто-то из участников засабмитит свои решения в дорешивание этого контеста, будет отлично — так проверим ограничения времени/памяти и отсутствие разных багов при импорте.

Еще один вопрос к участникам — как вы оцениваете сложность контеста по шкале 5 звезд? Описание можно посмотреть в тренировках (тултипы на звездах существующих тренировок).

Полный текст и комментарии »

  • Проголосовать: нравится
  • +7
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Это подробная и формальная версия правил соревнований Codeforces. Если вы хотите просто ознакомиться с правилами, то рекомендуем вам предварительно прочесть формат соревнований Codeforces. Организаторы могут немного модифицировать правила для конкретных раундов, тогда эта информация содержится в анонсе раунда. Приведенные ниже правила следует рассматривать как правила по-умолчанию.

Общие сведения о раунде

  1. Для участия в раунде необходимо зарегистрироваться. Регистрация на раунд открывается за 6 часов до его начала и заканчивается за 5 минут до его начала, если в информации по раунду не оговорено другое.

  2. Система проведения соревнований имеет два интерфейса: русский и английский, между которыми участники могут переключаться.

  3. Продолжительность раунда составляет 2 часа, если в информации по раунду не оговорена другая продолжительность.

  4. Участникам для решения предоставляется 5 задач, если в информации по раунду не оговорено иное количество задач.

  5. Условия задач доступны на двух языках: русском и английском.

  6. Условия всех задач становятся доступными для прочтения в момент начала раунда.

  7. Перед началом соревнования все зарегистрированные участники случайным образом делятся на комнаты. В каждую комнату попадают примерно 40 участников.

Вопросы по задачам

  1. Во время соревнования участники имеют право задавать вопросы жюри соревнований через систему. Вопросы могут касаться ошибок, неточностей и двусмысленностей в условии.

  2. Вопрос должен быть задан на одном из двух языков: русском или английском. Вопрос должен быть понятным и грамотно написанным. В противном случае жюри оставляет за собой право не рассматривать вопрос по существу и ответить "без комментариев".

  3. Жюри соревнований может ответить на заданный вопрос в произвольной текстовой форме.

  4. Ответ "без комментариев" означает, что вопрос не соответствует пункту 2, жюри считает, что вопрос не относится к условию задачи или ответ на него содержится в условии задачи или в правилах соревнований.

  5. Ответ на вопрос доступен только участнику, его задавшему, за исключением случаев, когда жюри соревнований принимает решение о том, что вопрос является существенным для всех участников. В таком случае вопрос и ответ на него жюри имеет право опубликовать всем участникам.

Решение задач

  1. Решением задачи является программа, написанная на одном из следующих языков программирования (разные задачи можно решать на разных языках программирования, список языков может быть расширен):

    • С/С++
    • Delphi/Pascal
    • Java
    • С#
    • Python
    • Ruby
    • PHP
    • OCaml
    • Haskell
    • Perl
    • Scala
    • D
    • Go
  2. Требования к программам:

    • Программа должна целиком содержаться в одном файле.
    • Если в условии задачи не заданы имена входных или выходных файлов, необходимо считывать данные со стандартного потока ввода и выводить данные на стандартный поток вывода.
    • Запрещается осуществлять работу с сетью.
    • Запрещается производить операции ввода-вывода, за исключением открытия, закрытия, чтения и записи файлов и стандартных потоков, которые указаны в условии задачи для осуществления ввода-вывода.
    • Запрещается запускать другие программы и создавать процессы.
    • Запрещается изменять права доступа в файловой системе.
    • Запрещается работать с директориями, отличными от текущей.
    • Запрещается работать с реестром операционной системы.
    • Запрещается создавать и использовать элементы GUI (окна, диалоги и т.п.)
    • Запрещается работать с внешними устройствами.
    • Запрещается производить любые действия, отличные от вышеперечисленных, которые тем или иным образом могут дестабилизировать работу системы.
  3. По мере готовности решений участники отправляют программы через интерфейс системы соревнования и продолжают работу над другими задачами. После получения решения и его проверки тестирующая система незамедлительно сообщает результат проверки решения.

  4. Участник может видеть результаты проверки решений на соответствующей вкладке системы соревнования.

Компиляция решений

  1. При отправке решения участник выбирает компилятор, который тестирующая система должна использовать для компиляции программы. Тестирующая система использует для проверки следующие компиляторы (жюри имеет право расширять список компиляторов по своему усмотрению или же заменять версии компиляторов на более новые):

    • MinGW GNU C++ 4
    • MinGW GNU C 4
    • Microsoft Visual C++ 2010
    • Free Pascal 2
    • Delphi 7
    • C# Mono 2
    • Java 6, 7
    • Ruby 1
    • Python 2
    • PHP 5
    • Haskell GHC 6
    • Objective Caml 3
    • Scala 2
    • Perl 5
    • Go 1
    • MS C# .NET 4
  2. Организаторы соревнований не несут ответственности за проблемы, вызванные несоответствием версии компилятора в тестирующей системе и версии компилятора, который использовался участником при разработке программы. Для того, чтобы частично избежать подобных проблем, предусмотрена возможность запуска кода участника на стороне сервера. Для запуска надо отослать на сервер программу и входные данные. Через некоторое время тестирующая система сообщит результат работы программы и выходные данные.

  3. Компиляция и запуск решений производятся под ОС Windows. Переводы строк задаются парой символов #13#10. После последней строки файла или входного потока (непосредственно перед его концом) находится перевод строки.

  4. Если произошла ошибка компиляции, то участнику сообщается результат проверки <Ошибка компиляции>, а также лог компилятора.

  5. Размер файла с исходным кодом не должен превышать 64 килобайт.

  6. Тестирующая система использует компиляторы командной строки для компиляции решений. Строки компиляции для разных компиляторов приведены в таблице:

компилятор строка компиляции (запуска)
GNU C++ 4 g++.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -lm -s -x c++ -Wl,--stack=268435456 -O2 -o %name%.exe %1
GNU C 4 gcc.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -fno-asm -lm -s -Wl,--stack=268435456 -O2 -o %name%.exe %1
GNU C++ 4 (C++0x) g++.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -lm -s -x c++ -Wl,--stack=268435456 -O2 -std=c++0x -D__USE_MINGW_ANSI_STDIO=0 -o %name%.exe %1
MS VS C++ 2010 cl /W4 /F268435456 /EHsc /O2 /DONLINE_JUDGE %1
Free Pascal 2 fpc -n -O2 -Xs -Sgic -viwn -dONLINE_JUDGE -Cs67107839 -Mdelphi -XS %1 -o%name%.exe
Delphi 7 dcc32 -Q -$M1048576,67107839 -DONLINE_JUDGE -cc %1
C# Mono 2 dmcs -define:ONLINE_JUDGE -o+ -out:%name% %1
Java 6,7 javac -cp ".;*" %1, java.exe -Djava.security.manager -Djava.security.policy=java.policy -javaagent:invokeagent.jar -Xmx512M -Xss64M -DONLINE_JUDGE=true -Duser.language=en -Duser.region=US -Duser.variant=US -jar %s
Ruby 1 ruby.exe -c %1
Python 2 python -c "compile(open('%1').read(), '%1', 'exec')"
PHP 5 php.exe -l %1
Haskell GHC 6 ghc --make -O -o %name% %1
OCaml 3 ocamlopt nums.cmxa str.cmxa -pp camlp4o -unsafe -o %name%.exe-ocaml %1
Scala 2 См. Java
Perl perl.exe %s
D dmd -L/STACK:268435456 -version=ONLINE_JUDGE -O %s
Go go build %1

Проверка решений

  1. Во время соревнования проверка решений осуществляется на небольшом наборе тестов, которые называются претестами.

  2. Результат проверки решения на претестах сообщаются участнику сразу же после проверки.

  3. Каждый тест представляет из себя входные данные для программы участника. Ограничения на содержащиеся в тестах входные данные указываются в условии задачи.

  4. Во всех задачах указано максимальное время работы программы на одном тесте и максимальный объем памяти, которую разрешается использовать.

  5. Тестирование производится путем последовательного запуска программы на каждом из тестов.

  6. Тест считается пройденным, если запуск программы завершился с кодом возврата 0, процесс уложился в отведенные ограничения на время и память и при этом программа выдала правильный ответ на данный тест. Ниже в таблице приведены наиболее частые вердикты возможных ошибок.

Вердикт системы Описание ошибки
Превышено ограничение памяти программа пытается использовать больше памяти, чем указано в условии задачи
Превышено ограничение времени программа не завершила работу за указанное в условии задачи время
Ошибка времени исполнения программа завершилась с ненулевым кодом возврата (произошло деление на 0, выход за границы массива и проч.)
Неправильный ответ неверный ответ
Решение "зависло" программа продолжительное время абсолютно не расходовала процессорное время
Отказ тестирования решение не удалось запустить, возможно, из-за ошибки тестирования наиболее вероятная причина — ошибка в программе (например, использование сверхбольших массивов)
  1. В случае, если решение прошло все претесты, участнику сообщается результат проверки "Претесты пройдены". В противном случае результат проверки, сообщаемый участнику, состоит из номера первого по порядку претеста, который не был пройден, и вердикта тестирующей системы.

  2. Если результатом проверки решения является "Ошибка компиляции", "Отказ тестирования" или решение не прошло первый претест, то это решение никак не учитывается при подсчете результатов.

  3. Решение по одной и той же задаче можно отправлять несколько раз.

  4. Решение, прошедшее все претесты, называется подтвержденным решением данного участника по данной задаче.

  5. В случае, если участник отсылает решение по некоторой задаче, проходящее все претесты, второй или более раз, то подтвержденным решением этого участника по этой задаче считается последнее из них. Все остальные решения будут учитываться как неудачные попытки.

  6. В случае, если решение участника по некоторой задаче проходит все претесты, задача считается предварительно решенной этим участником, и вычисляется предварительный балл участника за данную задачу. Вычисление балла проходит по следующей схеме:

    • каждую минуту стоимость задачи уменьшается: стоимость задачи падает на X/250 балла в минуту (где X первоначальная стоимость задачи), например, задача первоначальной стоимости 500 баллов дешевеет со скоростью 2 балла в минуту;
    • балл участника за задачу равен текущей стоимости задачи в баллах за вычетом штрафа;
    • штраф определяется как количество решений этого участника по этой задаче, сделанных ранее, умноженное на 50 баллов;
    • балл участника за задачу не может быть меньше, чем 30% от изначальной стоимости задачи.

Взломы

  1. В любой момент участник может заблокировать для себя любую предварительно решенную им задачу. Это означает, что участник больше не имеет права отсылать решения по этой задаче.

  2. Заблокировав задачу, участник получает право просматривать исходные коды подтвержденных решений по этой задаче участников, которые находятся с ним в одной комнате. После просмотра кода чужого решения, участник может предложить тест, который, по его мнению, не пройдет просмотренное решение. Эта процедура далее называется взломом решения. Тест может быть задан вручную, либо с использованием программы-генератора, которая выводит тест в стандартный поток вывода. Предложенный тест автоматически проверяется на соответствие ограничениям, указанным в условии задачи. Если ограничения не выполняются, то участнику сообщается об этом и попытка взлома игнорируется. Если же ограничения выполнены, то производится запуск взламываемого решения на предложенном тесте. В случае, если решение не проходит тест, то взлом считается успешным, иначе — неуспешным. Также взлом игнорируется, если в момент его обработки взламываемое решение не является последней подвержденной попыткой участника по задаче. Например, такое может произойти, если кто-то успел взломать это решение до данного взлома или участник успел перепослать решение.

  3. За успешный взлом участник получает 100 баллов. За неуспешный взлом участник получает штраф в 50 баллов.

  4. В случае успешного взлома для участника, чье решение взломали, происходит следующее:

    • задача больше не считается предварительно им решенной
    • его предварительный балл за эту задачу становится равным 0
    • тест из взлома добавляется в набор претестов по этой задаче для этого конкретного участника
  5. Если участник заблокировал задачу, но его решение по ней взломали, то у него сохраняется возможность взламывать чужие решения по этой задаче.

Что можно делать, а что нельзя

  1. Во время раунда участникам разрешается пользоваться любой литературой и личными записями, а также использовать заранее написанный код.

  2. Запрещается использовать чужой код в своем решении. С большими ограничениями можно пользоваться и чужим заранее написанным кодом, ознакомьтесь с подробностями по по ссылке.

  3. Разрешается пользоваться любыми источниками информации в интернете (но копировать-вставлять чужой код нельзя).

  4. Запрещается обфусцировать код решения, а также создавать препятствия для его чтения и понимания. То есть запрещено использование любых специальных приемов, призванных усложнить чтение кода с целью понимания его работы.

  5. Участникам запрещается общаться на темы, связанные с задачами, с кем бы то ни было, в том числе с другими участниками. Разрешается только задавать вопросы жюри через систему (см. раздел "Вопросы").

  6. Организаторы соревнований имеют право отслеживать честность поведения участников различными методиками и при выявлении нарушений — дисквалифицировать участника.

  7. Все программы, отправленные участниками на проверку, должны пытаться решить задачу, а не нарушить правила или дестабилизировать работу тестирующей системы. В случае намеренной попытки дестабилизации работы тестирующей системы участник будет дисквалифицирован.

  8. Запрещается использовать какие-либо технические способы (включая, но не ограничиваясь, OCR, средства анализа трафика, браузерные плагины и проч.) взаимодействия со взламываемыми решениями других участников. Единственный допустимый способ анализа взламываемого решения — его зрительный анализ. Допускается ручной перенабор взламываемого решения или каких-либо его частей с целью локального запуска.

  9. Любое нарушение этих правил, правил из раздела ЧАВО, правил из анонса соревнования или подтвержденных в процессе регистраций может повлечь штрафные санкции вплоть до дисквалификации и бана. Будьте честными!

Таблица текущих результатов

  1. Во время соревнования участникам доступна таблица текущих результатов. В ней отображено текущее положение участника в соревновании. В таблице можно увидеть заблокировано или нет решение и историю попыток пользователя.

  2. Все промежуточные результаты являются неофициальными.

Финальное тестирование и окончательные результаты

  1. После завершения соревнования публикуются результаты тестирования решений участников на основном наборе тестов.

  2. На основном наборе тестов тестируются подтвержденные решения, то есть те, которые одновременно:

    • прошли все претесты и являются последними из таковых (от участника по задаче);
    • не были взломаны.
  3. Задача считается решенной участником, если решение участника прошло все тесты из основного набора тестов.

  4. За решенную задачу участник получает балл, равный предварительному баллу его решения за эту задачу. Балл за нерешенную задачу равен 0.

  5. Результатом участника считается сумма баллов за все решенные им задачи и баллов за взломы.

  6. В окончательной таблице результатов участники располагаются в порядке убывания результата. В случае, если два или более участников имеют одинаковый результат, они делят одно и то же место.

  7. Тестирование осуществляется на компьютерах Core 2 Duo E6750, 2.66 Ghz, 3Gb памяти.

Интеллектуальная собственность

  1. Нижеприведенные правила используются каждый раз, когда для раунда нет специальных правил. Участники сохраняют за собой владение всеми правами интеллектуальной и промышленной собственности (включая моральные права) после предоставления решения.

  2. В качестве условия для представления, участник передает Codeforces, ее дочерним компаниям, агентствам и компаниям-партнерам не подлежащую отмене, действующую во всех странах, безвозмездную, неэксклюзивную лицензию на использование воспроизведение, адаптацию, модификацию, публикацию, публичное исполнение, создание производных материалов, обнародование решения.

  3. Участники предоставляют решение на условиях «как есть», без предоставления каких-либо гарантий или условий либо ни прямого, ни косвенного характера, включая, без ограничений, никаких гарантий или условий на названия, никаких гарантий относительно коммерческого использования или пригодности для тех или иных целей и ненарушения прав.

Просьба сообщить в комментариях, если мы забыли какие-то аспекты. Если после анализа комментария, текст будет обновлен, а соответствующий комментарий станет неактуальным, то такие комментарии мы будем через некоторое время скрывать (чтобы не захламливать ленту комментариев неактуальными вопросами/замечаниями).

Полный текст и комментарии »

  • Проголосовать: нравится
  • +17
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

В разделе тренировки опубликован контест, подготовленный Саратовским ГУ, для сборов в Зимних Петрозаводске (2011-2012). Этот же контест был этапом кубка главы Карелии и этапом открытого кубка.

Контест рекомендуется участникам уровня финала чемпионата мира или претендующих на подобные успехи.

А я не устаю призывать других авторов публиковать свои контесты в разделе тренировки!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +4
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Всем привет!

Напоминаю, что 9 марта в 12:00 начнется второй квалификационный раунд чемпионата VK Cup 2012.

Это последний шанс пройти в Раунд 1. В Раунд 1 проходят все участники, набравшие не меньше баллов, чем участник на 800-ом месте. Вас ждет несколько несложных задач, примерно расположенных по возрастанию сложности. Во время квалификации задачи тестируются системой только на претестах, а системное тестирование состоится после окончания квалификации (которая идет сутки). Претесты не покрывают все возможные случаи входных данных, так что тщательно тестируйте свои программы! Взломов, падения стоимости задач во время квалификации нет.

Раунд продлится 24 часа, но это не значит, что мы призываем вас все это время провести за решением задач. Мы надеемся, что большинство участников справятся с задачами (или с большинством задач) за более короткий срок. Такая длительность раунда выбрана для того, чтобы каждый нашел удобное время для участия.

До окончания раунда категорически запрещается публиковать где-либо условия задач/решения/какие-либо мысли и соображения о них. Запрещено общаться на тему задач, обсуждать условия и проч. Будьте честными и пусть в Раунд 1 пройдут сильнейшие. Когда квалификация будет завершена, можно будет обсуждать задачи и решения.

Зарегистрироваться на раунд можно в любое время вплоть до его окончания. Результаты раунда не будут влиять на рейтинг, внеконкурсное участие в раунде не разрешается. Впрочем, все задачи попадут в архив после окончания раунда.

Желаем удачи и удовольствия от решения задач!

UPD: Тестирование завершено, проходной балл равен 3500 3450. Поздравляем всех, кто прошел в Раунд 1!

UPD 2: Мы удалили явных читеров и проходной балл уменьшился до 3450!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +59
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Теперь в списке поддерживаемых языков есть и Java 7. По-видимому, это временное явление — одновременное присутствие Java 6 и Java 7. Как только мы убедимся в полной и корректной поддержке Java 7, то скажем Java 6 до свидания. Используется Oracle JDK/JRE, текущая версия 1.7.0_3.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +89
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Добрый день.

По единогласному решению Codeforces и организаторов Чемпионата VK Cup 2012 со стороны ВКонтакте вопрос о смягчении ограничений пользователю anonymous будет решен при заявлении от него, содержащем раскаяние в фактах нарушения правил и обещание впредь не нарушать правила.

Деятельность сообщества по привлечению к этому вопросу внимания является дополнительным важным аргументом.

UPD. Было получено заявление, по результатам рассмотрения которого пользователь I_love_natalia (кроме того известный как anonymous) был восстановлен в правах члена сообщества Codeforces.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +137
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Всем привет!

Напоминаю, что 4 марта в 00:00 начнется первый квалификационный раунд чемпионата VK Cup 2012.

Чтобы пройти в Раунд 1 вам надо принять участие хотя бы в одной квалификации. Из каждой квалификации в Раунд 1 проходят все участники, набравшие не меньше баллов, чем участник на 800-ом месте. Если вы не будете участвовать в первой квалификации или не прошли по ее результатам в Раунд 1, то не беда — вы можете попробовать силы во второй квалификации.

В каждой квалификации вас ждет несколько несложных задач, примерно расположенных по возрастанию сложности. Во время квалификации задачи тестируются системой только на претестах, а системное тестирование состоится после окончания квалификации (которая идет сутки). Претесты не покрывают все возможные случаи входных данных, так что тщательно тестируйте свои программы! Взломов, падения стоимости задач во время квалификации нет.

Раунд продлится 24 часа, но это не значит, что мы призываем вас все это время провести за решением задач. Мы надеемся, что большинство участников справятся с задачами (или с большинством задач) за более короткий срок. Такая длительность раунда выбрана для того, чтобы каждый нашел удобное время для участия.

До окончания раунда категорически запрещается публиковать где-либо условия задач/решения/какие-либо мысли и соображения о них. Запрещено общаться на тему задач, обсуждать условия и проч. Будьте честными и пусть в Раунд 1 пройдут сильнейшие. Когда квалификация будет завершена, можно будет обсуждать задачи и решения.

Зарегистрироваться на раунд можно в любое время вплоть до его окончания. Да, у нас был фальстарт с регистрацией на квалификацию. Не была включена функция проверки регистрации участника в Чемпионате. Если кто-то успел 2-го марта пройти регистрацию на раунд, то сделайте это повторно.

Результаты раунда не будут влиять на рейтинг, внеконкурсное участие в раунде не разрешается. Впрочем, все задачи попадут в архив после окончания раунда.

Желаем удачи и удовольствия от решения задач!

UPD: Раунд завершен. 12907 попыток ожидают системного тестирования!

UPD 2: Тестирование завершено, доступны результаты.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +82
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Чемпионат

Чемпионат VK Cup — это открытый чемпионат по программированию, проводимый компанией ВКонтакте, проектом Codeforces и Саратовским государственным университетом. Финал чемпионата пройдет в июле в Санкт-Петербурге. Лучшие 50 участников по результатам третьего отборочного раунда будут приглашены на финал соревнования. Расходы по проезду и проживанию берут на себя организаторы чемпионата.

Участники

Вы молоды и любите решать задачи по программированию? Этот чемпионат для вас! Участником чемпионата может стать любой желающий, кто удовлетворяет следующим требованиям:

  • возраст не менее 14 и не более 23 полных лет на момент регистрации;
  • не является сотрудником компании ВКонтакте и/или членом оргкомитета или жюри чемпионата;
  • не является дисквалифицированным членом сообщества Codeforces.

Таким образом, чемпионат преимущественно ориентирован на школьников старших классов и студентов.

Соревнование индивидуальное, участие в какой-либо коллективной форме не допускается.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +436
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Добавлен еще один контест Саратовского ГУ с Петрозаводских сборов. Кстати, если я правильно помню первое место в нем заняла команда Jury в составе Лопатин, Дуров и ... эх, забыл. Может кто-нибудь помнит?

Решайте на здоровье!

UPD. Боюсь на современных компьютерах можно будет кое-где пропихать медленные решения, скоро поставлю ограничение в 0.25 сек.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +24
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Опубликован первый саратовский контест на Петрозаводских сборах. Это было в далеком 2002-ом году, тогда сборы проходили на природе, на берегу Урозеро. Именно на тех сборах наша команда познакомилась с Андреем Лопатиным, Олегом Христенко и большим и дружным коллективом из Петрозаводска: Кузнецовым В.А., Петровичем, Романом Сошкиным. Короче, сборы были замечательные, а мы заняли там первое место.

К сожалению, у меня не осталось результатов того контеста (с минутами сдачи задач), так что призраков в этом контесте нет. Если у кого есть результаты — делитесь.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +41
  • Проголосовать: не нравится

Автор MikeMirzayanov, 12 лет назад, По-русски

Показываю пример :)

В раздел Codeforces::Тренировки был добавлен контест, который Саратовский ГУ привез на зимние Петрозаводские сборы год назад. Этот же контест был этапом кубка главы Карелии и этапом Открытого Кубка.

Обращаю внимание, что тренировка имеет сложность 5 звезд и рекомендуется к прорешиванию командами не ниже уровня финала чемпионата мира.

Авторы задач — дружный коллектив жюри Саратовского четвертьфинала ACM-ICPC:

  • Михаил Мирзаянов
  • Дмитрий Матов
  • Наталья Бондаренко
  • Дмитрий Кленов
  • Дмитрий Степаненко
  • Станислав Пак
  • Роман Алексеенков

Кстати, на добавление контеста ушло примерно 15 минут, процесс оказался простым и прозрачным. Подключайтесь!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +49
  • Проголосовать: не нравится