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

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

Добро пожаловать на 2016-2017 CT S03E04: Codeforces Trainings Season 3 Episode 4. Продолжительность тренировки — 4 часа 30 минут. Тренировка открыта как для команд, так и для индивидуальных участников. После ее окончания вы можете дорешивать задачи тренировки или поучаствовать в ней виртуально, если не смогли принять участие одновременно со всеми. Пожалуйста, участвуйте в тренировке честно.

Перейдите в раздел Тренировки для регистрации и участия.

Ориентировочный старт: 28 сентября 2016 г., 16:10 (Московское время).

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

Условия задач будут на английском языке, ведь мы же готовимся к ACM-ICPC!

Удачи!

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

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

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

Добро пожаловать на 2016-2017 CT S03E03: Codeforces Trainings Season 3 Episode 3 - 2007-2008 ACM-ICPC, Central European Regional Contest 2007 (CERC 07). Продолжительность тренировки — 4 часа 30 минут. Тренировка открыта как для команд, так и для индивидуальных участников. После ее окончания вы можете дорешивать задачи тренировки или поучаствовать в ней виртуально, если не смогли принять участие одновременно со всеми. Пожалуйста, участвуйте в тренировке честно.

Ориентировочный старт: 21 сентября 2016 г., 16:10 (Московское время).

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

Условия задач будут на английском языке, ведь мы же готовимся к ACM-ICPC!

Удачи!

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

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

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

Добро пожаловать на 2016-2017 CT S03E02: Codeforces Trainings Season 3 Episode 2 - 2004-2005 Open Cup, Volga Grand Prix. Продолжительность тренировки — 4 часа 30 минут. Тренировка открыта как для команд, так и для индивидуальных участников. После ее окончания вы можете дорешивать задачи тренировки или поучаствовать в ней виртуально, если не смогли принять участие одновременно со всеми. Пожалуйста, участвуйте в тренировке честно.

Ориентировочный старт: 14 сентября 2016 г., 16:10 (Московское время).

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

Условия задач будут на английском языке, ведь мы же готовимся к ACM-ICPC!

Удачи!

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

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

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

Добро пожаловать на 2016-2017 CT S03E01: Codeforces Trainings Season 3 Episode 1 - 2010 Benelux Algorithm Programming Contest (BAPC 10). Продолжительность тренировки — 4 часа 30 минут. Тренировка открыта как для команд, так и для индивидуальных участников. После ее окончания вы можете дорешивать задачи тренировки или поучаствовать в ней виртуально, если не смогли принять участие одновременно со всеми. Пожалуйста, участвуйте в тренировке честно.

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

Условия задач будут на английском языке, ведь мы же готовимся к ACM-ICPC!

Удачи!

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

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

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

Совсем скоро стартует новый сезон командного студенческого чемпионата ACM-ICPC. Например, регистрация на Южный (Саратовский) Четвертьфинал уже открыта. Уверен, среди участников соревнований Codeforces полно тех, кто будет участвовать в ACM-ICPC в этом году.

Чтобы не было мучительно больно за бесцельно прожитые годы, мы открываем серию еженедельных тренировок на Codeforces. Конечно, они будут проходить в рамках Codeforces::Тренировки. Приглашаются все желающие!

Время старта тренировок — примерно 16:10 еженедельно по средам (московское время). В качестве тренировок будут использованы задачи различных соревнований прошлых лет. Продолжительность тренировок — 4-5 часов. В дополнение к здравому смыслу несколько простых правил:

  • Мы не будем публиковать до старта тренировки источник задач, прошу решать задачи честно и самостоятельно. В случае использования чужих решений или какого-то другого чита – будем дисквалифицировать. Не хотите тренироваться сами – не тренируйтесь, а портить тренировки другим нельзя.
  • Давайте не будем обсуждать задачи до окончания тренировки.
  • Мы редко будем давать ответы на вопросы по задачам. Если вы нашли какой-то явный баг, то дайте нам знать — исправим, сделаем рассылку с информацией о правке.
  • Если у вас есть тренерский аккаунт (и вы не участник тренировок), то будем рады помощи.
  • Регистрируйтесь на тренировку вашим актуальным составом тех членов команды, кто участвует в ней.
  • Иногда я буду просить кого-то из жюри прошедших соревнований или тренеров других вузов помочь с подготовкой или поделиться материалами – надеюсь на ваше понимание и помощь!
  • Если вы уже решали эти задачи, то либо переключитесь на другую тренировку, либо сообщите об этом через форму вопросов по задачам и вас переведут на внеконкурсное участие.

Первая тренировка 2016-2017 CT S03E01: Codeforces Trainings Season 3 Episode 1 - 2010 Benelux Algorithm Programming Contest (BAPC 10) состоится 7-го сентября, примерно в 16:10.

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

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

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

Рад сообщить вам, что C++14 добавлен в список поддержанных языков на Codeforces. Выбор компилятора пал на MinGW-w64, версия GCC 6.2.0 (будем обновлять по мере выхода). Если у вас Windows, то установить именно эту сборку можно из PBOX одной командой pbox install mingw-w64.

Кроме новомодных фишечек C++14 (не уверен, что есть много полезного для соревнований), есть такие плюсы:

  • эта сборка быстрее mingw-tdm 5.1.0 работает с cin/cout — например перевернуть последовательность 106 целых чисел от 1 до 106 работает 1.5 секунды вместо 2.5 (и 0.3 вместо 1 при использовании std::ios::sync_with_stdio(false))
  • корректно работает вывод double как со спецификаторами как %f так и %lf (читать надо с помощью %lf)
  • корректно работает ввод-вывод long double как со спецификатором %Lf
  • корректно работает ввод-вывод long long как с %lld так и с %I64d

Вероятно, чтобы уменьшить не очень нужное разнообразие реализаций C++ через некоторое время MinGW С++ и MinGW С++11 будут исключены, тем более что их сложно обновить до GCC 6 из-за сложностей с обратной совместимостью. Конечно, через некоторое время C++14 появится и в Polygon.

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

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

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

Ну вот и настал этот день!

Именно сегодня, 3-го июля в 11:00 состоится финал VK Cup 2016! Лучшие 20 команд по результатам отбора уже собрались в Санкт-Петербурге.

Позади пробный тур (первое место заняли Um_nik и sivukhin — наши поздравления и клевые толстовки от ВК!) и Code Game Challenge (особо удался в этом году!). Первое место Code Game Challenge заняли I_love_Tanya_Romanova и MrDindows, браво!

Впереди основной тур — финальный раунд VK Cup. Участники будут бороться за звание Чемпиона и солидные денежные призы:

  • 1 место — 1048576 рублей
  • 2 местo — 524288 рублей
  • 3 местo — 262144 рубля
  • 4-8 места — 131072 рубля

Желаю удачи участникам и побольше позитива на туре!

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

UPD: Соревнование закончено! Жюри подводит итоги, а окончательные результаты будут объявлены на закрытии.

UPD 2: Результаты подведены. Еще раз поздравляю победителей! Полные результаты доступны по ссылке http://codeforces.me/vkcup2016/results.html

https://get.google.com/albumarchive/pwa/114907919772955385569/6302839250492788897?authuser=0&authkey=Gv1sRgCOy8xtDgqqCQPw&feat=directlink

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

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

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

Язык этого раунда — Kotlin. Kotlin (Ко́тлин) — статически типизированный язык программирования, работающий поверх JVM и разрабатываемый компанией JetBrains.

Вот вам пример простейшей программы, которая выводит сумму двух чисел:

fun main(args: Array<String>) {
    val (x, y) = readLine()!!.split(' ').map(String::toInt)
    println(x + y)
}

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

Вы можете отдельно выкачать компилятор языка версии 1.0.1 по ссылке http://s.codeforces.com/files/kotlin-compiler-1.0.1.zip Для запуска компилятора без IDE вам нужна установленная JRE (виртуальная машина Java), её можно найти по ссылке http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

Пароль для архива с IDEA (IDE с поддержкой Kotlin из коробки): c8bf9dd9b91ad9ff Сами ссылки на IDEA — чуть ниже или на официальном сайте https://www.jetbrains.com/idea/download/

Удачи!

====

UPD: Вы можете заранее выкачать пакет разработчика (извините, 300 МБ). На самом деле можно будет обойтись и без него — будет доступен запуск на Codeforces и в 18:30 выложим вариант покомпактнее.

OS
Linux http://s.codeforces.com/files/683-linux.7z
Windows http://s.codeforces.com/files/683-windows.7z
Mac OS http://s.codeforces.com/files/683-macos.7z

Все архивы запаролены, пароль будет опубликован в 18:30.

========

16 июня в 19:00 (московское время) вас ждет Surprise Language Round #8. Напоминаю, что это необычное развлекательное соревнование. Задачи можно будет сдавать лишь на одном языке, а каком — пока секрет.

Таким образом, предполагается что за время раунда участники могут познакомиться с языком и сдать на нем несколько несложных задач. Язык раунда будет анонсирован за 30 минут до старта раунда. В этом же время (или даже чуть раньше) мы опубликуем архивы с инструментами для написания программ на этом языке.

Я рад анонсировать, что лучшие 20 участников получат клевую эксклюзивную футболку, а еще 10 штук будут случайным образом разыграны среди всех тех, кто решил хотя бы три задачи.

Правила проведения раунда:

  • Соревнование будет нерейтинговым для всех участников.
  • Индивидуальное соревнование по правилам ACM ICPC: положение в результатах определяется количеством решенных задач, при равном количестве — набранным штрафным временем. Изначально штрафное время участника равно 0, при каждой сданной задаче оно увеличивается на время, прошедшее с начала контеста, + 20 минут за каждую неудачную посылку до отправки правильного решения. Решение считается правильным, если оно прошло все тесты из предопределенного набора; правильно ли посланное решение, становится известно сразу. Взломов чужих решений нет.
  • В раунде будет 6-10 задач, примерно отсортированных по сложности, и 2 часа на их решение.
  • Решения задач принимаются только на одном языке, который будет объявлен за 30 минут до старта контеста.
  • Пожалуйста, в начале контеста перечитайте этот пост целиком: в нем появится объявление языка, рекомендации по установке компилятора (в интерфейсе контеста будет доступен запуск программы онлайн) и полезные ссылки на документацию. В остальном изучение языка — дело рук самого участника. Для решения задач вы можете использовать любые ресурсы (но не совместное участие); ограничиваться документацией, приведенной в посте, не обязательно.

Удачи!

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

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

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

Иногда на соревнованиях по программированию (в том числе и на Codeforces) вы можете встретить интерактивные задачи.

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

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

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

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

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

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

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

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

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

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

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

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

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

Сегодня, 2-го июня 2016-го года, произошла техническая накладка, которую я запомню надолго. Неудачным образом сложились сразу несколько обстоятельств, что привело к серьезному сбою в работе системы Полигон.

Дело в том, что в середине мая Полигон был перенесен на серверы, расположенные в Mail.Ru. Для осуществления переноса почти без даунтайма (а данных немало, около терабайта) была настроена утилита lsyncd, которая оперативно проталкивала изменения со старого сервера на новый. Ей же осуществляется один из вариантов бэкапа данных.

Сегодня случился ребут старого сервера, который привел к незапланированному запуску lsyncd и как результат — синхронизации данных со старого сервера опять на новый. В результате данные, находящиеся в файловой системе, были откатаны до версии на момент переноса (13 мая). Значительная неудача состоит в том, что в отличие от старого сервера, где система бэкапов была настроена хорошо и давно, на новом сервере я оперативно успел настроить тот же lsyncd, который не помогает в случае удаления файлов (так как форсирует удаление и на реплике). Очевидно, не помог RAID-1, который мы используем всюду для хранения данных.

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

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

Мне очень паршиво осознавать, что моё недостаточное внимание к деталям привело к таким последствиям. Я отлично помню черный день Codeforces — и в результате него многое было пересмотрено (всюду зеркальные дисковые массивы, реплики и бэкапы). К сожалению, в этот раз после переезда на новое железо я оперативно не вернул все используемые скрипты и вот результат. Приношу свои глубочайшие извинения авторам задач.

М.

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

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

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

Привет!

Знатокам C++ это конечно всё очевидно и естественно, а вот я как-то привык, что знаковое переполнение в С++ не приводит к настоящему неопределенному поведению на конкретной платформе. То есть понятно, что в зависимости от big-endianness/little-endian результат может получиться разным.

Случайно нашел пример забавного поведения:

#include <iostream>
int main()
{
    for (int i = 0; i < 300; i++)
        std::cout << i << " " << i * 12345678 << std::endl;
}

Этот код при компиляции с -O2 в современном g++ приводит к бесконечному циклу. Неожиданно, правда?

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

Теги g++, ub
  • Проголосовать: нравится
  • +257
  • Проголосовать: не нравится

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

19-го мая в 06:00 (московское время) начнется наиважнейшее событие спортивного программирования — Финал командного студенческого чемпионата мира по программированию ACM-ICPC 2016.

Лучшие 128 команд со всего мира примут участие в финале чемпионата. Эти команды прошли суровый отбор, ведь всего в чемпионате приняли участие 13422 команд из 2736 университетов со всех уголков земного шара!

Финал этого года проводится в Пхукете (Таиланд). Совсем скоро будут определены 12 команд медалистов чемпионата (4 золотых, 4 серебряных и 4 бронзовых медали) и, конечно, команда Чемпион Мира по программированию этого года.

По результатам полуфинала, прошедшего в Санкт-Петербурге в декабре 2016-го года, в этом году Россию представляют 12 команд из:

  • Уральского федерального университета
  • Санкт-Петербургского университета
  • Московского физико-технического института
  • Московского государственного университета
  • Санкт-Петербургского университета информационных технологий, механики и оптики
  • Нижегородского государственного университета
  • Саратовского государственного университета
  • Санкт-Петербургского академического университета
  • Университета Иннополис
  • Университета «МИФИ»
  • Северного (Арктического) федерального университета
  • Московского авиационного института

Ссылки для болельщиков:

Желаем командам собраться и продемонстрировать в финале чемпионата только свои лучшие стороны! Удачи!

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

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

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

Финал ACM-ICPC 2016 в самом разгаре! Команды и организаторы собрались в Таиланде. Погода отличная — ночью ливни, днем жара. Сезон дождей в действии. По-местному сейчас около двух ночи, но так как мне категорически не спится, я решил поделится впечатлениями и фотографиями с первых двух основных дней мероприятия.

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



Le Meridien, фото с официального сайта отеля

Между отелями курсируют маршрутки, ехать примерно полчаса. Немного неудобно, что маршрутки ходят не все дни или как минимум не всегда, а по расписанию.

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

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

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

И снова здравствуйте!

Уже сегодня 5-го мая в 19:05 начнется очередной раунд Codeforces. Да-да, обратите внимание на нестандартное время старта.

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

Авторы задач — это я и fcspartakm. Надеемся, что вам понравятся задачи и будет весело и полезно!

Запланированная разбалловка такова:

  • A: 500
  • B: 750
  • C: 1000
  • D1: 1000
  • D2: 500 (то есть полное решение задачи D оценивается в 1500 баллов)
  • E: 2000
  • F: 2500

Удачи!

UPD: Как указали в комментариях с парой смежных задач D1/D2 есть тонкость со взломами.

  1. Для того, чтобы избежать ситуации, что участник заблокировал задачу D1 и подглядел в своей комнате решение к D2, вы сможете блокировать задачи D1/D2 только парно одновременно и только в том случае, если сдали как D1 так и D2. Иными словами, возможность блокировки D1/D2 появляется после сдачи обеих подзадач, блокировка осуществляется одновременно по обеим подзадачам.

  2. Для того, чтобы избежать двойного вознаграждения за взлом как D1, так и D2 у одного и того же участника, участник A в случае успешного взлома участника B по задаче D1 теряет возможность взламывать B по D2. Аналогично, если участник A успешно взломал участника B по задаче D2, то A теряет возможность взламывать B по D1.

UPD 2: Раунд завершен. Поздравляем победителей. Вот герои сегодняшнего дня.

топ-5 официальных участников:

  1. xlk200
  2. TableEnterer_Lin
  3. cykhhq595
  4. xxxholic
  5. A_Navie_Moer

топ-5 внеконкурсных участников:

  1. anta
  2. -XraY-
  3. Um_nik
  4. halyavin
  5. Enchom

UPD 3: Опубликован разбор задач.

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

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

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

Добрый день!

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

Я рад представить вам авторский подпроект Codeforces, с незатейливым кодовым названием Codeforces::News. Этот подпроект будет поддерживать и вести студентка факультета КНиИТ (компьютерных наук и информационных технологий) Саратовского государственного университета Ксения gKseni Гусева. Как говорится, прошу любить и жаловать! Ксения пока еще не капитально погружена в жизнь и новости спортивного программирования, но с моей и вашей помощью быстренько восполнит этот пробел. В наших планах — регулярные небольшие тематические новости, иногда анонсы, шутки и напоминания о мероприятиях. Если хорошо пойдет и будет потребность, то будем ретранслировать в соцсети, но пока сделаем небольшой раздел на страницах Codeforces.

Первое время новости будут только на русском языке, а как процесс встанет на понятные рельсы, то многие новости будем переводить и на английский. Надеюсь, вам станет интереснее регулярно заходить на Codeforces, а Ксения постарается чтобы так и было. Кто знает, чем закончится эта затея? Может через несколько лет у нас будет своя редакция и периодическое издание “Codeforces Times”.

М.

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

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

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

Сегодня, 25-го апреля в 18:00, начнется VK Cup 2016 - Уайлд-кард раунд 2.

Участникам раунда будет предложено максимально продвинуться в решении одной сложной и необычной задачи. Официально в этом раунде смогут принять участие команды чемпионата VK Cup 2016, которые прошли в Раунд 2, но не оказались среди тех топ-100 лучших по его результатам, кто проходит в Раунд 3. Кроме того, этот раунд будет открыт для всех желающих для неофициального участия вне чемпионата. Зарегистрироваться на раунд можно будет в любое время пока он идет.

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

Удачи!

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

UPD 2: Системное тестирование завершено. Поздравляем победителей! Напоминаем, что лучшие 20 команд будут приглашены в Раунд 3, который начнется 7 мая в 18:05.

UPD 3: Тестирование завершено! С учетом дополнительного тестирования, следующие команды завоевали право участия в Раунде 3:

  1. Geisterkirche, aan93
  2. komendart, zloyplace35
  3. Arthur, Ferathorn
  4. slava.sh
  5. Lo_R_D, vas.and.tor
  6. mHuman, stas99
  7. pashaD4RW1N, krock21
  8. Kaban-5, pavel.savchenkov
  9. magnickolas, sslotin
  10. BotanIQ, agsagds
  11. sergileon, Auster
  12. reconst, Raven_gg
  13. Naduxa, DimonK
  14. Infoshoc
  15. KingArthur, awoo
  16. WiBk, alex700
  17. Jace_Beleren, Jovfer
  18. diko, Omrigan
  19. jvmusin, NikitaMikhaylov
  20. MrDindows, I_love_Tanya_Romanova
  21. nijikilling, maxplus
  22. aytel, kokokostya
  23. kuzmichev_dima, Timur_Keks
  24. tyamgin, Sokolov
  25. Mogby
  26. alex_chukharev, dashakisik
  27. alex.tsitsura
  28. WasylF, stostap
  29. passick, yurboss

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

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

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

Привет!

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

Были даже комментарии из серии "я же говорил, что так и будет"

После первого раунда VK Cup 2016 я внимательно изучил причины подобного роста и обнаружил простой и банальный баг в формулах подсчета рейтинга. Забавно, что даже будучи опубликованным этот код не вызвал скепсиса. Посмотрите в эту функцию:

    private double getSeed(List<Contestant> contestants, Contestant contestant, int rating) {
        Contestant extraContestant = new Contestant(null, 0, 0, rating);
        double result = 1;
        for (Contestant other : contestants) {
            result += getEloWinProbability(other, extraContestant);
        }
        return result;
    }

Напомню, что эта функция вычисляла ожидаемое место участника, если бы его рейтинг был равен rating. Конечно, она не должна учитывать самого участника, кому мы в данный момент присвоили гипотетической значение рейтинга. Правильный код должен содержать проверку:

        for (Contestant other : contestants) {
            if (other != contestant) {
                result += getEloWinProbability(other, extraContestant);
            }
        }

Этот баг приводил к тому, что занимая первое место tourist фактически побеждал одного очень серьезного противника. Себя самого. Это приводило к значительному росту его рейтинга, даже если первое место было довольно ожидаемым.

Хорошая новость состоит в том, что этот баг оказывал статистически значимый эффект лишь в очень редких случаях: когда победитель (или близкий к победителю участник) и так имел очень большой рейтинг (да-да, обратное для "антигероев" тоже верно). Если взять произвольный раунд и пересчитать рейтинг по исправленным формулам, то практически все участники получат в точности (или очень близкое) изменение рейтинга.

Посоветовавшись с tourist и Petr, я пришел с следующему плану действий:

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

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

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

М.

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

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

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

Раскопал в старых вещах:

А какая у вас самая старая (или может ценная) футболка с олимпиад?

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

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

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

Добрый день.

26-го марта в 10:00 (московское время) стартует Отборочный Раунд 2 чемпионата Технокубок 2016. Раунд будет длиться два часа, участникам будут предложены 5 задач. По его результатам лучшие 150 участников (но не более 45% от общего числа участников раунда) будут приглашены на финальный этап в Москву. Для регистрации на раунд и участия перейдите по ссылке http://codeforces.me/contests/649. Не забудьте заранее зарегистрироваться на раунд. Впрочем, если забудете — не беда. Через 10 минут после старта будет открыта дополнительная регистрация для опоздавших (ее длительность — 100 минут).

Зарегистрироваться на Отборочный Раунд 2 →
Для зарегистрированных участников олимпиады

Напомним, что согласно правилам раундов Codeforces во время соревнования ваши решения будут тестироваться только на претестах (предварительном и неполном наборе тестов), а системное тестирование состоится после окончания раунда. Обратите внимание, что претесты не покрывают все возможные случаи входных данных, поэтому тщательно тестируйте свои программы! После прохождения претестов у вас будет возможность заблокировать решение, тем самым получив привилегию искать ошибки и взламывать чужие решения, но отказавшись от возможности перепослать ваше решение при каких-либо обстоятельствах (например, даже если вы найдете ошибку или вас взломают). Со временем задачи падают в стоимости. После системного тестирования учитываются только полные решения. Подробнее про правила соревнований можно прочитать по ссылкам:

Напоминаем, что регистрация на олимпиаду еще открыта. На кону — дополнительные баллы при поступлении в престижные технические вузы России и ценные призы. Если вы — школьник 8-11 классов и пока не зарегистрировались на Технокубок, то самое время сделать это:

Зарегистрироваться на олимпиаду →

В финал соревнования будут приглашены лучшие 150 участников каждого из отборочных раундов (но не более 45% от общего числа участников раунда).

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

Желаем удачи на олимпиаде,
MikeMirzayanov и команда Технокубка

UPD 1: Раунд будет рейтинговым для всех участников олимпиады "Технокубок", то есть как для официальных участников раунда, так и участников вне конкурса.

UPD 2: Дорешивание доступно в Тренировках: 2016 Технокубок: Отборочный Раунд 2.

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

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

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

24-го марта в 09:00 (московское время) стартовал Ознакомительный Раунд 2. Его продолжительность составит двое суток, его результаты не будут как-либо влиять на прохождение в следующие этапы. Его единственная цель — дать вам возможность ознакомиться с платформой Codeforces и её тестирующей системой. Приглашаем вас принять в нём участие! Для участия перейдите по ссылке http://codeforces.me/contests/647. Раунд будет содержать несколько несложных ознакомительных задач и будет открыт для официальных участников Технокубка.

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

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

Напоминаем, что еще открыта регистрация на олимпиаду для школьников Технокубок. Mail.Ru Group совместно с МФТИ, МГТУ им. Н. Э. Баумана и Codeforces в этом году впервые проводит Технокубок — первую совместную олимпиаду по программированию для школьников. На кону — дополнительные баллы при поступлении в престижные технические вузы России и ценные призы.

Зарегистрироваться на олимпиаду!

В финал соревнования будут приглашены лучшие 150 участников каждого из отборочных раундов (но не более 45% от общего числа участников раунда).
Первый отборочный раунд уже состоялся, а второй начнется 26 марта (суббота) в 10:00.

Желаем удачи на олимпиаде,
MikeMirzayanov и команда Технокубка

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

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

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

Добрый день.

Теперь пропустить раунд из-за невнимательности при регистрации станет сложнее. В ближайшие раунды в экспериментальном режиме будет запущена функциональность дополнительной регистрации (может надо называть как-то по-другому: расширенной регистрации?).

Это означает, что после окончания периода основной регистрации (как обычно, за 5 минут до старта раунда) будет еще один дополнительный период. Он будет начинаться через 10 минут после старта раунда и закончится через 20 минут, то есть после 30 минут от старта раунда. Роль 10 минут двойная:

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

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

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

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

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

Добрый день.

23-го марта в 18:00 (московское время) стартует Отборочный Раунд 1 чемпионата Технокубок 2016. Раунд будет длиться два часа, участникам будут предложены 5 задач. По его результатам лучшие 150 участников (но не более 45% от общего числа участников раунда) будут приглашены на финальный этап в Москву. Для регистрации на раунд и участия перейдите по ссылке http://codeforces.me/contests/648. Не забудьте заранее зарегистрироваться на раунд. Впрочем, если забудете — не беда. Через 10 минут после старта будет открыта дополнительная регистрация для опоздавших (ее длительность — 20 минут).

Зарегистрироваться на Отборочный Раунд 1 →
Для зарегистрированных участников олимпиады

Напомним, что согласно правилам раундов Codeforces во время соревнования ваши решения будут тестироваться только на претестах (предварительном и неполном наборе тестов), а системное тестирование состоится после окончания раунда. Обратите внимание, что претесты не покрывают все возможные случаи входных данных, поэтому тщательно тестируйте свои программы! После прохождения претестов у вас будет возможность заблокировать решение, тем самым получив привилегию искать ошибки и взламывать чужие решения, но отказавшись от возможности перепослать ваше решение при каких-либо обстоятельствах (например, даже если вы найдете ошибку или вас взломают). Со временем задачи падают в стоимости. После системного тестирования учитываются только полные решения. Подробнее про правила соревнований можно прочитать по ссылкам:

Напоминаем, что регистрация на олимпиаду еще открыта. На кону — дополнительные баллы при поступлении в престижные технические вузы России и ценные призы. Если вы — школьник 8-11 классов и пока не зарегистрировались на Технокубок, то самое время сделать это:

Зарегистрироваться на олимпиаду →

В финал соревнования будут приглашены лучшие 150 участников каждого из отборочных раундов (но не более 45% от общего числа участников раунда).

Второй отборочный раунд будет открыт для всех тех, кто не прошел в финальный этап из первого отборочного раунда. Причина (не участие или недостаточный результат) — не важна. Второй отборочный раунд состоится 26 марта 10:00-12:00.

Желаем удачи на олимпиаде,
MikeMirzayanov и команда Технокубка

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

UPD 2: Соревнование закончено, спасибо за участие! Поздравляем топ-150 с приглашением в Финал олимпиады. Скоро вам будет отослано письмо с формой участника, пожалуйста, не задерживайте с заполнением.

UPD 3: В силу ряда причин дорешивать задачи можно в Тренировках: 2016 Технокубок: Отборочный Раунд 1, приношу извинения за некоторое неудобство.

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

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

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

Добрый день.

21-го марта в 17:00 (московское время) стартует Ознакомительный Раунд 1. Его продолжительность составит двое суток, его результаты не будут как-либо влиять на прохождение в следующие этапы. Его единственная цель — дать вам возможность ознакомиться с платформой Codeforces и её тестирующей системой. Приглашаем вас принять в нём участие! Для участия перейдите по ссылке http://codeforces.me/contests/646. Раунд будет содержать несколько несложных ознакомительных задач и будет открыт для официальных участников Технокубка.

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

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

Напоминаем, что еще открыта регистрация на олимпиаду для школьников Технокубок. Mail.Ru Group совместно с МФТИ, МГТУ им. Н. Э. Баумана и Codeforces в этом году впервые проводит Технокубок — первую совместную олимпиаду по программированию для школьников. На кону — дополнительные баллы при поступлении в престижные технические вузы России и ценные призы.

Зарегистрироваться на олимпиаду!

В финал соревнования будут приглашены лучшие 150 участников каждого из отборочных раундов (но не более 45% от общего числа участников раунда). Отборочные раунды состоятся:

  • первый отборочный раунд: 23 марта 18:00-20:00
  • второй отборочный раунд: 26 марта 10:00-12:00

Желаем удачи на олимпиаде,
MikeMirzayanov и команда Технокубка

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

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

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

Совсем скоро стартует Квалификационный раунд Чемпионата по программированию "КРОК 2016". Раунд будет идти двое суток, мы надеемся каждый сможет найти удобное себе время для участия. Этап начнется 16 марта в 12:00 (московское время).

Подробнее о Чемпионате можно прочитать по ссылке http://codeforces.me/blog/entry/43229

Чтобы принять участие в Чемпионате официально необходимо зарегистрироваться по адресу http://codeforces.me/croc2016/register Общий список зарегистрированных на Чемпионат доступен по ссылке.

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

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

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

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

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

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

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