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

Автор MikeMirzayanov, 8 лет назад, По-русски
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей

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

Разбор задач Codeforces Round 496 (Div. 3)
  • Проголосовать: нравится
  • +52
  • Проголосовать: не нравится

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

Hello!

This time decided to fill myself in the shoes of the problem writers. It is very exciting! My challenge was to prepare a round in one day. It's really incredible pleasure to surrender to my passion and all day just work on problems!

Despite the fact that in total I've wrote 8 problems, I made it in time. Initially, I prepared 7 problems, but two of them were found to be used before (thank you, 300iq and cdkrot for poining it) and I removed them and wrote a new problem.

Codeforces Round 496 (Div. 3) will start on Jul/09/2018 18:35 (Moscow time). You will be offered 6 problems with expected difficulties to compose an interesting competition for participants with ratings up to 1600. Probably, participants from the Div. 1 not be at all interested by this problems. And for 1600-1899 the problems will be quite easy. However, all of you who wish to take part and have rating 1600 or higher, can register for the round unofficially.

The round will be hosted by rules of educational rounds (extended ACM-ICPC). Thus, during the round, solutions will be judged on preliminary tests, and after the round it will be a 12-hour phase of open hacks. I tried to make strong tests — just like you will be upset if many solutions fail after the contest is over.

You will be given 6 problems and 2 hours to solve them.

Remember that only the trusted participants of the third division will be included in the official standings table. As it is written by link, this is a compulsory measure for combating unsporting behavior. To qualify as a trusted participants of the third division, you must:

  • take part in at least two rated rounds (and solve at least one problem in each of them),
  • do not have a point of 1900 or higher in the rating.

Regardless of whether you are a trusted participant of the third division or not, if your rating is less than 1600, then the round will be rated for you.

Many thanks to the testers: kevinsogo, 300iq, cdkrot, arsijo and adedalic. You really helped to make this round!

Good luck!

UPD 1: The round is over. Thank you for participation!

Official Top-5 (trusted only)

Unofficial Top-5 (+ untrusted)

UPD 2: The editorial is available by the link.

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

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

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

Привет, Codeforces!

Предлагаю и вам присоединиться к тестированию HTTPS для Codeforces. Просто перейдите по ссылке https://mirror.codeforces.com/ и начните пользоваться сайтом по HTTPS.

Я в курсе некоторых минорных недоработок: в письмах пока по прежнему указаны адреса на HTTP-версию сайта, Facebook не объединяет лайки для HTTP и HTTPS. Заметили что-то еще? Пишите комментарий!

И спасибо Let's Encrypt за сертификаты. Теперь с вайлдкардами!

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

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

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

Привет!

Codeforces Round 481 (Div. 3) начнётся в 13.05.2018 12:05 (Московское время).

Это будет второй в истории Codeforces раунд для третьего дивизиона. В этом раунде будет 7 задач, которые подобраны по сложности так, чтобы составить интересное соревнование для участников с рейтингами до 1600. Наверное, участникам из первого дивизиона они будут совсем не интересны, а для 1600-1899 покажутся простыми. Однако все желающие, чей рейтинг 1600 и выше могут зарегистрироваться на раунд вне конкурса.

Раунд пройдет по правилам образовательных раундов. Таким образом, во время раунда задачи будут тестироваться на предварительных тестах, а после раунда будет 12-ти часовая фаза открытых взломов.

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

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

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

Задачи для вас подготовили я и fcspartakm. От души спасибо тестерам AGrigorii, BigBag, nhho и Sert!

Удачи!

UPD 1: Спасибо за участие. Опубликован разбор задач.

UPD 2: Поздравляем победителей! Топ-5 (официальные результаты):

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

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

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

Привет, Codeforces!

Последнее время что-то я стал много получать сообщений с просьбами об удалении аккаунта. Я размышляю как наиболее правильно реализовать эту фичу. Какой контент должен оказаться скрытым, а какой является частью истории и должен остаться доступен: блоги? комментарии? попытки? Как эта фича реализована в VK/Facebook и других соцсетях? Есть ли какие-то общепринятые нормы?

Буду рад вашим мыслям в комментариях.

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

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

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

Привет, Codeforces!

Настало время новостей. Надеюсь, вам понравится!

  • Мы немного опускаем границу рейтинга для оранжевых участников. Таким образом, теперь оранжевый рейтинг (и звание мастер) будет начинаться от 2100 единиц рейтинга.

  • Нижняя граница рейтинга для легендарных гроссмейстеров увеличена до 3000 единиц рейтинга. Таким образом, прямо сейчас в сообществе 14 участников соответствуют этому требованию. Настоящие легенды!

  • Для раундов серии «только для Div. 2» увеличена верхняя граница рейтинга для официального участия. Теперь все, чей рейтинг менее 2100 (то есть до кандидатов в мастера включительно) смогут зарегистрироваться на такие раунды для участия в конкурсе, их рейтинг будет обновлён по результатам раунда. Мы не планируем повышать сложность Div. 2 раундов. Практика показывает, что задачи таких раундов и сейчас интересны и полезны участникам «ниже оранжевого».

  • Для совмещенных Div. 1 + Div. 2 раундов распределение по дивизионам остается без изменения, то есть в Div. 1 редакцию раунда будут попадать участники от 1900 единиц рейтинга и выше.

  • В качестве эксперимента мы планируем проводить раунды упрощенной сложности (Div. 3). В таких раундах в официальные результаты будут попадать участники с рейтингами менее 1600. Мы планируем включать в такие раунды простые учебные задачи, которые помогут начинающим участникам освоить получить навыки и новые знания в режиме настоящего соревнования. Так как даже в Div. 2 раундах регулярно находятся любители самоутвердиться из числа первого дивизиона (зарегистрировали новый аккаунт, заняли высокое место в Div. 2 раунде), то имеет смысл ожидать подобное неспортивное поведение и в Div. 3 раундах. Мы будем исключать из официальной таблицы результатов Div. 3 раунда и помещать в отдельную комнату всех тех, кого достоверно сложно назвать реальным участником. Аккаунты, которые существенно участвовали менее чем в 2-х рейтинговых раундах (то есть решили хотя бы одну задачу) до начала Div. 3 раунда, и те, кто когда-либо набирал 1900 или более единиц рейтинга не будут попадать в официальную таблицу и будут определены в отдельные комнаты. Однако, это не означает отсутствие пересчета рейтинга для них. Таким образом, рейтинг будет обновлен у всех пользователей, чей рейтинг строго меньше 1600 на момент старта раунда. Возможно, мы будем экспериментировать с определением кого следует считать достоверным участником Div. 3, а кого — нет. И да, спасибо VLamarca за пост с обсуждением идеи Div.3 раундов!

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

Надеюсь, вы рады этим новостям.
MikeMirzayanov

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

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

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

Добрый день!

Этот пост приурочен к окончанию краудфандинг-кампании по случаю 8-летия Codeforces. Всё получилось. Ура!

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

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

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

Тип раунда $ рубли
Div 1 + Div 2 $250+*$150=$400 26000 руб.
Div 2 $125+*$75=$200 13000 руб.

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

Кроме того, собранные средства помогут увеличить вознаграждения координаторам задач KAN и vintage_Vlad_Makeev!

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

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

Еще раз спасибо вам за поддержку!

MikeMirzayanov

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

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

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

19-го апреля в 18:35, начнется VK Cup 2018 - Wild-card Round 2.

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

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

Удачи!

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

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

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

Привет, Codeforces!

10 апреля в 17:35 по Москве начнётся Educational Codeforces Round 42.

Продолжается серия образовательных раундов в рамках инициативы Harbour.Space University! Подробности о сотрудничестве Harbour.Space University и Codeforces можно прочитать в посте.

Этот раунд будет рейтинговым для Div. 2. Соревнование будет проводиться по немного расширенным правилам ACM ICPC. После окончания раунда будет период времени длительностью в один день, в течение которого вы можете попробовать взломать абсолютно любое решение (в том числе свое). Причем исходный код будет предоставлен не только для чтения, но и для копирования.

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

Задачами вместе со мной занимался Александр fcspartakm Фролов. Также мы поблагодарим Николая KAN Калинина, Григория vintage_Vlad_Makeev Резникова и Владимира vovuh Петрова за тестирование и помощь в подготовке раунда.

Удачи в раунде! Успешных решений!

UPD: Подлетела информация от нашего партнёра Harbour.Space University

The third Hello Programming Bootcamp finished as teams from around the world learned, competed, and got to know each other in the cities of Kollam and Moscow.

“I'm positively surprised with the level and number of Indian teams. I believe when following a systematic and regular training schedule — they will certainly attend top world records in programming” says Mike MikeMirzayanov Mirzayanov.

The results of the India boot camp are as follows:

We would like to congratulate the top teams from the India side in both divisions A and B — and especially recognise division A’s winner: Team SDV — Vasily platypus179 Alferov, Vaibhav gvaibhav21 Gosain, Motasem Motarack AL-Kayed sponsored by Social Discovery Ventures, and winners of the Educational Codeforces Round 39.

The division A winners are: Team SDV (platypus179, gvaibhav21, Motarack), TheVindicators (IIIT Kharagpur) (pranjal.ssh, Chenghiz), DomiNUS (NU of Singapore) (vodanhna, darknsux, minh141198).

The division B winners are: BEU Programmers (Baku Engineering University) (mahmud2690, Mamedov, fuck_coderinuse), Penza State University (Fortin, WooDeND, Key_J) and Sab_lite_hai (IIT(BHU),Varanasi) (Enigma27, Dsingh_24, nitishk24).

All results from India side
All results from Russia side

From the ever present in ACM World Finals city of Moscow, to the new-comer on the world stage city of Kollam — Hello India x Russia Programming Bootcamp showcased heart, passion, and a universal drive towards a better competition.

“It's the first time I participate at Hello ACM-ICPC Bootcamp in Asia and I admire local hospitality and students motivation. Everyone seems to be eager to learn, participants stay very late upsolving the contest problems and revising the topics they were thought during the day” states Gleb GlebsHP Evstropov, The Coordinator of the Programming Committee.

The latest in world finals simulation training would not be possible without the bronze sponsorship of VTB, the institute with the most extensive international network of any Russian bank, boasting more than 30 banks and financial companies in more than 20 countries.

Fill out this form and we will keep you up to date on our next boot camp!

UPD: Разбор

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

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

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

2 марта в 18:35 начнётся второй квалификационный раунд чемпионата VK Cup 2018!

Правила этого раунда будут совпадать с правилами Квалификации 1. К участию приглашаются команды, не участвовавшие в первой квалификации или набравшие в ней менее 2600 баллов. Те, кто успешно справился с первой квалификацией, могут принять участие вне конкурса, при этом их результаты никак не будут влиять на проход остальных команд. Разумеется, от команд, участвующих вне конкурса, также требуется соблюдение всех правил Чемпионата.

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

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

Затем следует зарегистрироваться на Раунд:

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

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

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

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

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

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

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

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

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

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

Всем привет!

24 февраля в 18:35 начнется первый квалификационный раунд чемпионата VK Cup 2018!

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

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

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

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

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

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

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

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

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

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

Привет!

В качестве допустимого компилятора на Codeforces и в систему Polygon добавлен язык C++17. В качестве компилятора используется 32-битный mingw64 версии 7.2.0 (позже будет обновлен, когда выйдут новые версии). Учитите, что мы используем патч от halyavin для ускорения ввода-вывода при использовании scanf/printf (подробнее можно прочитать здесь). Точный используемый дистрибутив можно установить на Windows из нашего пакетного менеджера PBOX по ссылке http://pbox.me/packages/mingw-w64-7

Точная используемая строка компиляции:

g++.exe -static -DONLINE_JUDGE -Wl,--stack=268435456 -O2 -std=c++17 -o %name%.exe %1 2>compilation.log

Удачных решений на С++17,
MikeMirzayanov

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

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

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

Добрый день!

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

Предлагаю в комментариях обсудить задачи (когда тур завершится во всех регионах) и результаты.

Наверное, в этом году большинство регионов проводит на Яндекс.Контесте. Интересно, многие ли регионы проводят самостоятельно?

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

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

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

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

Hi!

After the Educational Codeforces Round 35 (Rated for Div. 2) the system marked some solutions as plagiarism by mistake. It counts submitted twice solutions of the same participant as a plagiarism. Sorry about it. Day ago I rolled back punishment and judged such submissions as normal. Now I'm fixing the ratings. In 2-3 hours some rating changes will be reverted and applied back. The same with NY magic. Temporarily magic is unavailable now. It will be back soon!

The changes will affect ~10 people.

MikeMirzayanov

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

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

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

С Новым годом, Codeforces!

Спешу пожелать всей аудитории (и мне в том числе) работающих программ, внезапных озарений, красивых идей и интересных задач!

Я надеюсь, что вы встретили новый год так же весело, как и я. Успели выспаться после новогодней ночи? В этом году традиционный пост подведения итогов прошедшего года я сел писать только 1-го января 2018-го. Надеюсь, мне не придется теперь весь год подводить итоги.

Этот пост важен для меня, так как он подводит черту всей работе, которая проделана командой Codeforces и всем сообществом в 2017-м году. Огромное спасибо команде: все перечисленные ниже достижения — результат общих трудов и усилий. Мы отлично поработали! Сообщество должно знать своих героев. В 2017-м году в развитии проекта принимали участие: MikeMirzayanov, KAN (координатор задач), vintage_Vlad_Makeev (второй координатор задач), netman (экс-второй координатор задач), kuviman (разработчик), fcspartakm (разработчик), SladeThe (разработчик) и gKseni (менеджер). Большой вклад оказали студенты СГУ BledDest, awoo, vovuh и Perforator — образовательные раунды, тренировки и помощь в разработке. Я посылаю лучи благодарности авторам задач и тестерам — вы создаете интереснейший контент для многих тысяч любителей программирования со всего мира. Огромное спасибо всем тем, кто помогал со спецпроектами, писал интересные посты и дельные комментарии. Все вместе мы смогли сделать Codeforces лучше!

Итак, перейдем к итогам. Мне кажется, в этом году опять есть чем похвастаться.

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

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

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

У вас же уже новогоднее настроение?

А у нас традиционные подарки!

Смена хэндла

В Новый год мечты сбываются: вы можете сменить хэндл до 10-го января!

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

Хэндл можно сменить либо на совсем новый (ранее никем никогда не используемый), либо на тот, который у вас был когда-то ранее. Кстати, ссылки на ваш профиль с прошлым хэндлом работать не перестанут — будет автоматический редирект со старого хэндла на новый. У нас все ходы записаны!

В этом году улучшение — если вы приняли участие в 10 или более раундах, то можете забрать хэндл у неактивного пользователя. Если пользователь заходил на сайт в отрезок времени не более месяца, это всё было до 2014-го года, поучаствовал не более чем в одном контесте, не написал комментариев, личных сообщений и еще пара похожих требований, то у него можно изъять хэндл. У него хэндл будет автоматически сменен на похожий, ему отослано письмо с информацией. Если у вас не получается сменить хэндл, значит какое-то из условий не выполняется. Пожалуйста, не просите меня что-то предпринять. Я не Дед Мороз.

Для смены хэндла нажимайте в профиле "Настройки", затем "Хэндл", а потом внимательно читайте всё то, что написано.

Касательно необдуманных хэндлов я всегда вспоминаю такую историю. Мне как-то написал пользователь с просьбой: "Прошу сменить мой хэндл с I_love_Valya на I_love_Sveta, так как Валю я больше не люблю..."

Новогодний маскарад цветов и званий

В настройках профиля появился традиционный волшебный раздел. С Новым годом!

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

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

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

Привет, Codeforces!

Перед полуфиналом ACM-ICPC у меня возникла неожиданная мысль воспользоваться моментом и взять интервью у самого успешного тренера в истории чемпионатов по программированию (ACM-ICPC) Андрея andrewzta Станкевича. Было интересно попробовать и себя в новом качестве. Мне кажется, Андрей рассказал много интересного. Спасибо!

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

Спасибо Андрею за интересный рассказ и ИТМО за предоставленную возможность и помощь.

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

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

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

Привет, Codeforces!

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

Приглашаю вас принять участие в Testing Round 14 (Unrated). Старт состоится 22-го декабря в 14:05. Раунд будет неофициальным, нерейтинговым. Продолжительность: 90 минут.

Претесты будут необычно слабыми, чтобы спровоцировать побольше взломов.

Спасибо,
MikeMirzayanov

UPD: Спасибо! Раунд прошел без замеченных багов. Все системы работают исправно.

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

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

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

Привет, Codeforces!

Это не совсем обычный пост от меня. Это не анонс новых фич или чемпионата, но воодушевлен я ничуть не меньше.

Рад сообщить, что с 29 января по 16 февраля 2018 г. буду читать курс "Advanced Algorithms and Data Structures" в Harbour.Space University (Испания, Барселона). Курс будет прочитан на английском языке. Слушателями этого курса будут не только студенты Harbour.Space. Курс открыт для всех желающих! Кто хочет присоединиться?

Обычно курсы приглашенных преподавателей в Harbour.Space предназначены исключительно для студентов университета. Я очень рад, что Harbour.Space в случае моего курса пошел на эксперимент, сделав курс открытым для желающих попасть именно на него. Стоимость обучения составит 1000 евро. Подать заявку можно по ссылке. В стоимость обучения не входит проживание в Барселоне и питание.

Записаться на курс →

В моих планах — подробный рассказ о некоторых алгоритмах и структурах данных, много практических занятий и акцент не только на правильность, но и красоту и структура кода. Моя цель — сделать полезные и интересные занятия для как для всех кто хочет разбираться в фундаментальном CS, так и для интересующихся соревнованиями по программированию. Наверняка, у нас будет возможность познакомиться и пообщаться. Я с удовольствием поделюсь рассказами об истории Codeforces и планами по развитию.

Курс будет состоять из трёх недель обучения, по 5 учебных дней в каждой неделе. В программе — ежедневные лекции и практические занятия. Скучно точно не будет!

Вот предполагаемый план курса:

Неделя День Тема
1 1 Heap data structure, heap properties and operations. HeapSort. Priority queue. Other heap applications. Mergeable heaps: binomial heap, pairing heap, randomised meldable heap.
1 2 Fenwick tree. Description and motivation. Implementation of Fenwick tree. Generalisation for higher dimensions. Skip list data structure. Implementation details. Indexable skiplist.
1 3 Segment trees. Top-down implementation. Bottom-up implementation. Segment trees applications. Persistent data structures. Persistent stack, persistent array. Persistent Fenwick and segment trees.
1 4 Cartesian trees, treap data structure. Merge and split operations. Treap implementation in detail. Treap applications.
1 5 Treaps with implicit keys. Ropes. Segment reverse operation. Examples of problems.
2 6 Introduction to strings. String searching (matching) problem. Pattern pre processings. Z-function, prefix-function. Their applications. Knuth–Morris–Pratt algorithm. Matching finite state machine.
2 7 Multiple pattern matching. Trie data structure. Aho-Corasick algorithm. Implementation details. Dynamic programming on a trie.
2 8 String hashing. Rabin-Karp algorithm. Fast substrings comparison with hashes. Suffix array. LCP array. Efficient construction algorithm. Applications.
2 9 Suffix tree. Ukkonen's algorithm. Suffix tree construction from LCP array. Suffix tree applications.
2 10 Suffix automaton. Size bounds. Linear Algorithm. Using suffix automata as an index for approximate string searches.
3 11 Introduction to automata theory. Formal languages. Context-free languages. Formal grammars. Context-free grammars. NFA, DFA, convert NFA to DFA. Build automaton by regular expression.
3 12 LL(1) parser. Arithmetic expressions parsing. Shunting-yard algorithm. Simplified Pascal language parsing and interpretation.
3 13 Algorithms for traversing a graph. DFS. Properties. DFS search tree. Edges classification. Linear bridge-finding algorithm. Linear articulation points finding algorithm. Strongly connected components. Tarjan's strongly connected components algorithm.
3 14 Tree problems. Bottom-up approach. LCA problem. LCA algorithms.
3 15 Bipartite graphs. König’s criterion. Problems: maximum matching, minimum edge cover, maximum independent vertex set, minimum vertex cover. Connection of the problems. Berge's lemma. Kuhn algorithm. Kuhn algorithm properties. Minimal vertex cover by maximum matching. Cover DAG by minimal number of paths.

Университет Harbour.Space расположен в Барселоне (Испания). Пользователям Codeforces университет Harbour.Space известен по активному участию в жизни сообщества спортивного программирования (сборы и партнерство с Codeforces в рамках образовательных раундов). Основная же деятельность университета — обучение (есть бакалаврские и магистерские программы) по направлениям:

  • Maths as a Second Language
  • Computer Science
  • Data Science
  • Cyber Security
  • Interaction Design
  • Digital Marketing
  • High Tech Entrepreneurship
  • FinTech
  • BioTech
  • Aerospace Engineering
  • SuperCities UrbanTech

Mike Mirzayanov

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

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

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

Привет!

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

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

Встречайте, диагностика решений на С++!

Постоянные посетители Codeforces уже устали от вопросов менее опытных участников: «Почему моё решение не работает на тесте на серверах Codeforces, если локально я его запускаю, и оно работает? У вас неправильный компилятор/серверы!» В 99% случаях это пример неопределённого поведения в программе. Иначе говоря, программа содержит ошибки, которые в силу ряда обстоятельств не воспроизводятся при локальном запуске, но воспроизводятся при запуске на серверах Codeforces.

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

В g++/clang++ есть замечательная штука sanitizers (переводится как «дезинфицирующее средство»). Это такие способы скомпилировать программу в особом режиме так, что при своей работе она будет проверять свой ход выполнения на неопределенное поведение (и некоторые другие ошибки) и в случае возникновения выдавать их в stderr. Похожей функциональностью обладает и drmemory (некоторый аналог valgrind, но для Windows), который для определения ошибок запускает программу в особом режиме. При таких диагностических запусках колоссально страдает производительность выполнения программы (программа выполняется медленнее в 5-100 раз и требует больше памяти), но зачастую оно того стоит.

Теперь автоматическая диагностика в некоторых случаях предотвратит вопрос вида «Почему не работает???», указав на ошибку или её вид!

Если ваше решение:

  • написано на C++,
  • упало с вердиктом «неправильный ответ» или «ошибка исполнения»,
  • на этом тесте отработало предельно быстро и съело мало памяти,

то оно будет перезапущено, используя специальные диагностические компиляторы (clang++ c sanitizers и g++ с drmemory). Если при таком запуске произойдет ошибка исполнения, то журнал запуска будет отображен в деталях тестирования в разделе «диагностика». Конечно, эта запись будет содержать технический лог на английском языке, но зачастую он укажет вам на ошибку программы. Часто он содержит причину падения программы и даже строку исполнения. Если диагностика не отображается, значит хотя бы одно условие выше не выполнилось или диагностика не обнаружила ошибок.


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

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

Желаю, чтобы ваши программы не падали. Надеюсь, нововведение будет полезно!

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

P.S. Так же диагностические компиляторы просто доступны для использования. Например, их можно использовать на вкладке «Запуск». Напоминаю, что программа работает многократно медленнее и потребляет больше памяти в режиме диагностики.

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

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

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

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

Привет.

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

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

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

Еще раз приношу извинение за неудобства.

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

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

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

Добрый день!

18-го октября завершился Четвертьфинал Южного подрегиона NEERC (Northern Eurasia) чемпионата ACM-ICPC. В Саратове встретились 73 команды, многие из которых получили приглашение по результатам квалификационного этапа.

Уже в субботу, 21-го октября в 11:05 (МСК) состоится онлайн-зеркало 2017-2018 ACM-ICPC, NEERC, Южный четвертьфинал (онлайн-трансляция, правила ACM-ICPC, предпочтительно команды).

Приглашаю команды ACM-ICPC к участию и просто индивидуальных участников соревнований Codeforces принять участие!

Конечно, соревнование будет нерейтинговое.

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

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

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

Обратите внимание, что мы напряглись и подготовили дополнительные задачи для Div 1. Таким образом, параллельно с отборочным раундом будут проведены Codeforces Round 440 Div.1 и Div.2 (рейтинговые раунды для обоих дивизионов — всё как вы любите). Участвуют все!

Добрый день.

15-го октября в 11:05 (московское время) стартует Отборочный Раунд 2 (и открытые раунды для обоих дивизионов по его мотивам) олимпиады для школьников Технокубок 2018. Раунд будет длиться два часа, участникам будут предложены 6 задач. По его результатам лучшие участники (но не более 45% от общего числа участников раунда) будут приглашены на финальный этап в Москву. Для регистрации на раунды и участия перейдите по ссылке. Не забудьте заранее зарегистрироваться на раунд. Впрочем, если забудете — не беда. Через 10 минут после старта будет открыта дополнительная регистрация для опоздавших (ее длительность — 20 минут).

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

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

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

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

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

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

Опубликован разбор.

Поздравляем победителей!

Отборочный раунд Технокубка:

  1. Mikhniuk
  2. scanhex
  3. Krisha
  4. lis
  5. FalseMirror

Div. 1:

  1. khadaev
  2. Errichto
  3. eddy1021
  4. FizzyDavid
  5. fateice

Div. 2:

  1. wdmmsyf
  2. Legilimens2023
  3. destinydrifter
  4. oscar114514
  5. OMS

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

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

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

Привет, Codeforces!

25 сентября 2017 года в 13:35 MSK состоится очередной раунд Codeforces #436 для участников из второго дивизиона. Традиционно, участники из первого дивизиона приглашаются поучаствовать в соревновании вне конкурса. Обратите внимание на необычное время начала раунда!

Этот раунд проводится по задачам школьного этапа Всероссийской олимпиады школьников по информатике 2017/2018 года г. Саратова. Задачи для вас готовили Perforator, MikeMirzayanov и fcspartakm. Огромное спасибо тестерам: sdya и BledDest, а так же координаторам KAN и vintage_Vlad_Makeev.

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

UPD Если вы школьник из Саратова и писали сегодня школьный этап Всероссийской олимпиады по информатике, убедительная просьба не принимать участие в сегодняшнем соревновании!

Поздравляем победителей!

Div. 2:

  1. zjt_ioi_2019_ak
  2. AngusRitossa
  3. Jha_The_ME_Coder
  4. cxh007
  5. Alexxx

Div. 1:

  1. Shik
  2. dreamoon_love_AA
  3. black_horse2014
  4. orbitingflea
  5. KassiJulgus

Разбор тут.

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

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

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

Добро пожаловать на 2017-2018 ACM-ICPC, NEERC, Южный четвертьфинал, квалификационный этап (онлайн-трансляция, правила ACM-ICPC, предпочтительно команды).

Этот контест был проведен вчера (17-го сентября). В основном он ориентирован на аудиторию участников из второго дивизиона.

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

Во время онлайн-зеркала вы сможете скачать PDF-файлы с условиями (как на русском так и английском языках). Ссылки будут доступны на основной странице соревнования в сайдбаре справа.

Удачи!

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

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