Size: a a a

2016 May 17
Leonid Volkov
Сейчас своими глазами видел, как люди вполне готовы убивать, и как их делают готовыми к этому клоунские погоны.
То есть вот сначала развели этих ряженых "казаков", потом дали им носить форму, и теперь они вполне уверены, что форма делает их особенными. Они реально напирали, били, избивали, запинывали ногами лежащих, потому что "мы здесь власть", "мы казаки", вот же какие у нас кителя и погоны.
Было страшно.

Ну и конечно абсолютный failed state: все линейные отделы и прочие нацгвардии испарились, от всей власти в крупном аэропорту остались два щуплых мента с ж/д вокзала (!), один капитан и один старлей, испуганных, крошечных, в форме не по размеру.
Когда казаки, бандиты с Хованского кладбища, бандиты с любого другого кладбища, исторические реконструкторы или там любителя бабочек вдруг зачем-то серьезно захотят взять власть, они обнаружат, что на пути к ней стоят два испуганных мента, и больше ничего.
источник
Leonid Volkov
Ну и да: никаких казаков не существует, конечно же.
Казачество — это специфическая форма организации фронтира в большой средневековой стране: государство дает людям бесплатно землю вдоль госграниц в обмен на обязательство содержать войско для их охраны. Эта форма имела смысл в XVI-XVII веках, практически утратила его к концу XIX века, и не имеет никакого права на существование в XXI, как ее не "возрождай". "Возрождению" легко поддаются шапки-кубанки, нагайки, чубы и пьяные песни, но никакой потребности в смелых хлеборобах, содержащих коня и упряжь в постоянной боевой готовности, у общества нет и не возникнет уже никогда.
Поэтому употребление слова "казаки" по отношению к ряженым, которые пытаются выторговать себе те или иные привилегии в обмен на угодные власти мелкие и крупные пакости и провокации (типа сегодняшней), является распространенной, но от от того не менее грубой ошибкой.
источник
2016 May 19
Leonid Volkov
В Москве 5.30 утра, в Новосибирске 8.30, а на Пхукете 9.30, и это значит, что команды-участницы финала чемпионата мира по спортивному программированию заходят в зал соревнований и готовятся стартовать через 30 минут. Волнуются все ужасно. Настраиваются, вспоминают, проводят маленькие ритуалы.

Соревнование будет длиться пять часов, и я хочу попробовать решить нетривиальную задачу: сделать интересную трансляцию для таких читателей, которые не способны понять условия ни одной из 13 задач, которые предстоит решить участникам финала. (Полагаю, таких — подавляющее большинство среди моих читателей). Для тех, кто задачи читает и понимает, есть куча специализированных трансляций, в которых будут обсуждаться хитрости и детали условий, тонкости алгоритмов, быстродействие, ошибки, ловушки и все остальное; но я пребываю в 100% уверенности, что спортивное программирование — достаточно увлекательный спорт для того, чтобы следить за самой интригой турнира, как могут увлеченно смотреть гонку Формулы-1 и люди, у которых даже водительских прав нет.

В моей трансляции не будет специальных терминов; я постараюсь раскрыть спортивную интригу предстоящего турнира, объяснить, чем он престижен и интересен и сделать так, чтобы вам было интересно вместе со мной поболеть за наших.
источник
Leonid Volkov
Что такое вообще спортивное программирование? Зачем оно нужно? Как соотносится с работой программиста в Яндексе? В банке? С работой 1С-программиста? Почему люди этим занимаются?

Я постараюсь подробно рассказать об этом в ближайшие часы, но для начала рекомендую прочитать интервью, которое в 2014 году дал журналу "Хакер" Петр Митричев, один из самых сильных и уважаемых спортивных программистов в мире. Он там очень хорошо и ясно на все эти вопросы отвечает.

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

https://xakep.ru/2014/05/26/mitrichev/
источник
Leonid Volkov
источник
Leonid Volkov
Кадр из официальной трансляции: команда Саратовского государственного университета на своем рабочем месте за 15 минут до начала соревнования. На заднем плане — общий вид зала, в котором проходит финал, видны рабочие места всех команд.

В каждой команде три студента (им должно быть не более 24 лет, один может быть аспирантом первого года обучения), от каждого ВУЗа в финале может быть не более одной команды. Всего в финал отобрано около 130 команд, а только в официальной сетке отборочных соревнований (четвертьфиналов и полуфиналов) участвовало около 10000 команд; с учетом же внутривузовских соревнований, на которых отбираются команды на четвертьфиналы, можно смело оценить, что сейчас спортивным программированием в мире занимается несколько сотен тысяч студентов — и финал чемпионата мира является главным событием года и суперпрестижной вершиной этого айсберга.
источник
Leonid Volkov
И... Началось! Поскольку все было готово и все в порядке, турнир официально стартовал на 7 минут раньше, в 9.53 местного времени. Чтобы меньше нервничать и ждать, видимо.

Команды раскрыли конверты с условиями задач и читают. В команде три человека, но компьютер у них только один, а задач - тринадцать. Организация командной работы — ключ к успеху. Все должны быстро прочитать условия, оценить сложность задач; выбрать самую простую, в которой меньше всего шансов ошибиться, и кто-то сразу сядет за компьютер писать алгоритм, а двое других участников в это время будут решать другие, более сложные задачи, "на бумажке" — то есть продумывать и готовить решение, чтобы, к тому моменту, когда клавиатура освободится, быть готовыми тоже быстро его вбивать. Времени думать, сидя перед экраном нет, это непозволительная роскошь.
источник
Leonid Volkov
источник
Leonid Volkov
Старинная традиция чемпионата: за каждую решенную задачу команда будет получать воздушный шарик соответствующего цвета; его будут приносить и привязывать к столику команды.

Задач всего 13, они пронумерованы буквами от A до M; порядок задач ничего не говорит об их сложности.

Побеждает команда, которая решит больше всего задач; при равенстве количества решенных задач — та, которая потратит меньше штрафного времени. Время начисляется собственно за решение задач и за неудачные попытки (20 минут штрафа за каждую попытку). Например, если команда 1 сдала первую задачу на 20-й минуте, а вторую на 60-й минуте с третьей попытки, у нее будет 120 минут штрафного времени (20+60+2*20). Команда, которая сдаст первую задачу на 30-й минуте, а вторую на 70-й, но без неудачных попыток, будет стоять в таблице результатов выше, так как получит всего 100 минут штрафного времени (30+70).
источник
Leonid Volkov
источник
Leonid Volkov
Это хорошо видно и по текущей таблице результатов. После 20 минут с момента старта, есть уже 10 команд, решивших по одной задаче. В основном решают задачу С, очевидно, что она самая простая.
Например, команда Нижегородского университета сдала ее с первой попытки на 13-й минуте, и идет сейчас третьей, с результатом 1 задача, 13 минут.
А вот Гарвард первой сделал задачу E, тоже очень быстро, за 15 минут, но со второй попытки, поэтому штрафное время равняется 35 минутам.
источник
Leonid Volkov
Важно понимать две вещи.
1. Проверка решений идет в режиме реального времени. То есть команда, написавшая решение задачи, отправляет его на проверку и обычно в течение максимум минуты получает вердикт жюри (точнее, автоматизированной проверяющей системы). Если решение принято — все, ура, задача сдана. Если не принято — жюри сообщает лишь номер теста, на котором оно не сработало. (Например: "Неверный ответ в 6-м тесте" или "Превышение ограничения по времени в 14-м тесте"). При этом ни количество тестов, ни их содержание команде не известно. Команда лишь понимает, что где-то ошибка, ну и может косвенно отслеживать свой прогресс в ее преодолении, если, допустим, в первой попытке ошибка была на 6-м тесте, а в следующей — на 10-м. Засчитывается же только решение, которое проходит весь набор тестов жюри (одинаковый для всех команд).
2. Таблицу с результатами команды видят в реальном времени. То есть, например, команды, которые сейчас сдали задачу С, и думают, что делать дальше, видят, что другие команды успешно сдают задачу Е, и могут сделать вывод о том, что она, вероятно, тоже простая, и взяться за нее.

Эти две штуки — мгновенность реакции жюри и таблица соревнований в реальном времени — делают спортивное программирование спортом. Помимо собственно головы на плечах, знания алгоритмов, умения быстро кодировать, очень важной оказывается спортивная тактика, организация работы, отслеживание работы конкурентов.
источник
Leonid Volkov
источник
Leonid Volkov
После первых 40 минут, 7 команд имеют по две решенных задачи, среди них три российских и две польских.
Это показательно: начиная с 2000 года, чемпионами мира становились университеты только трех стран — России (10 раз), Китая (4) и Польши (2).
И еще одна показательная вещь: обратите внимание на результат команды Уральского университета — задача L сдана на 31-й минуте, задача C — на 33-й минуте.
Это как раз показатель хорошей организации работы. За две минуты написать и сдать задачу на финале чемпионата мира невозможно; это значит, что команда параллелила работу: один писал, что-то не получалось, отлаживал, отсаживался подумать на бумажке, в это время другой писал. Вот так это и работает.
источник
Leonid Volkov
источник
Leonid Volkov
Очень большие скорости в наше время. Когда я играл — 15 лет назад — задач было по 6-8, и решение трех задач за час казалось чем-то невероятным, сейчас это в порядке вещей. При этом задачи не стали проще, они стали гораздо сложнее.

Три команды после первых 50 минут имеют в активе по три решенных задачи: СПбГУ (трехкратные чемпионы мира) и две очень сильные китайские команды. То есть фавориты заняли свои места, герои старта же, на секунду примерившие желтые майки лидеров, остались где-то внизу, на скромных местах.
Обратите внимание, как круто шанхайцы сдали две задачи вообще одновременно, на 43-й минуте: одну со второй попытки, другую с третьей. То есть получили ответы от жюри, параллельно занялись отладкой, быстро разобрались, что не так, и быстро исправились. Но: штрафного времени нахватали прилично.

Вообще, думаю, к этому моменту вы уже поняли — у лидеров почти всегда будет одинаковое число решенных задач; это очень сильные, опытные, равные в классе команды; отрыв на целую задачу — это как в Формуле-1 на круг обогнать. Все же обычно все решается по штрафному времени, хотя истории известны примеры великих побед с отрывом и в одну, и в две задачи.
источник
Leonid Volkov
источник
Leonid Volkov
Ровно час прошел, лидирует СПбГУ, очень впечатляюще — четыре задачи и все с первой попытки. Но не отстают и очень сильные конкуренты — многократные чемпионы мира из Шанхая и команда легендарного MIT, сильнейшая из американских. В большом пелетоне с тремя задачами куча сильных команд — и поляки, и команда, за которую болеет ваш комментатор: Уральский университет.
А вот если у команды после первого часа две задачи и меньше то скорее всего это означает, что в борьбе за медали она не поучаствует, слишком уже велико отставание.
источник
Leonid Volkov
Самая титулованная команда в мире - бразильцы спортивного программирования - шестикратные чемпионы мира из СПбИТМО тоже в группе команд, имеющих три решенных задачи. При этом ребята первыми решили задачу B, достаточно сложную, которую еще никто из лидеров не решил — это дает им важный гандикап. Скоро мы обязательно увидим команду ИТМО на самом верху лидирующей группы.
источник
Leonid Volkov
По пять задач: СПбГУ - MIT - Harvard.
Тут интересно присутствие сразу двух. американских команд в тройке лидеров.
Чемпионат мира по программированию зародился, естественно, в США (в 1977 году), и до 1989 года в нем участвовали только североамериканские команды. И побеждали, конечно, только они.
Но с наступлением эры интернета и расширением географии соревнований, все это закончилось.
Помню, в 2001 году мы ужасно гордились, что обогнали Стенфорд и Гарвард, но объективно гордиться было нечем — в элиту эти команды не входили.
Отрадно видеть, что ситуация меняется, и команды самых известных американских вузов снова в топе — для нашего спорта это хорошо, это больше внимания спонсоров и крупных компаний, это интереснее для медиа, чем российско-китайский междусобойчик.
источник