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

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

И снова здравствуйте! На связи с вами из города Монтикьяри, где проходит первый тур 24-й международной олимпиады по информатике успевшие всем надоесть AlTimin и PavelKunyavskiy.

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

Как и в прошлом году, на каждом туре участникам предлагается по три задачи. Организаторы пока не выложили задачи в интернет, так что я вкратце перескажу условия задач.

В первой задаче (с самым длинным условием) участникам предлагается написать программы для машинки, которая катается по клетчатому полю 256x256, умеет оставлять в клетках камни. Более формально: в каждой клетке в любой момент времени не может быть больше 15 камней, машинка умеет выполнять команды move, left, right, put, get (если при выполнении какой-то команды машинка пытается выполнить некорректное действие, то команда просто игнорируется). Кроме того, в тексте программы можно ставить метки вида L: и, соответственно, бывает безусловный переход на метку (jump L) и два условных перехода (pebble L и border L), которые совершают переход на метку L в случае, если в текущей клетке есть камень или машинка упирается в стенку. В этой задаче есть несколько подзадач, в которых требуется написать разные программы. В первой подзадаче надо остановится в той из клеток (0, 0) и (0, 1), в которой изначально было больше камней. Во второй все то же самое, но количество камней в этих клетках после выполнения программы должно остаться таким, как было. В третьей надо попасть в середину отрезка. В четвертой нужно было собрать все камни в клетке (0, 0). Балл за подзадачу зависит от количества действий машинки. В пятой нужно найти глобальный минимум на доске, причем менять конфигурацию камней запрещено. Балл за задачу зависит от длины программы.

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

Третья задача: есть строка, бывают операции двух видов: "добавить букву в конец строки" и "отменить последние K операций" (да, можно отменить отмену команды!). Кроме этого, в произвольный момент времени приходят запросы вида "узнать K-тую букву строки".

На данный момент осталось два часа до конца контеста. Табличка результатов лежит тут. На первом месте, как ни странно, tourist с 272 баллами из 300. Среди россиян лидирует Егор Суворов (yeputons), находящийся на шестом месте c 204 баллами. Максим Ахмедов (Zlobober) и Олег Иванов (tigvarts) c 148 и 140 баллами занимают 21 и 26 места. У Леши Гордеева (Copymaster) на данный момент всего 9 баллов, видимо он завяз в дебаге довольно неприятной с технической точки зрения второй задачи. Мы надеемся, что он сейчас разберется и получит свои законные баллы по всем задачам.

-1:30: Леша получил 37 баллов по второй задаче. Мы надеемся, что это значит, что он написал стресс-тест и вскоре получит по ней полный балл. Олег превратил 40 в 58 по первой задаче и написал решение на 20 баллов во второй, что подняло его на 19 место. Макс чуть-чуть прокачал первую и вторую задачу, оказавшись на 21 месте. Ждем ответа от Егора.

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

-1:00: Час до конца контеста. У Леши по третьей задаче появилось 60 баллов. Он большой молодец: у него получилось собраться в нужный момент, что очень тяжело.

-0:50: Битва титанов продолжается. У американца китайского происхождения 297 баллов, в то время как у Гены всего 287. Болеем за Гену! Леша продолжает нас радовать, набрав 100 баллов по третьей задаче. Немного странно то, что Егор очень давно (больше часа) ничего не посылал. Остается надеяться на то, что он кодит какую-нибудь вундерваффе (и то, что он успеет её докодить до конца тура).

-0:45: Сервер с табличкой периодически ругается страшными словами типа "Internal server error". Надеемся, что у участников никаких проблем с сервером нет.

-0:40: Ахтунг! С табличкой происходит что-то странное, видимо реджадж.

-0:35: Нет, это был не реджадж. Видимо просто глюк таблички.

-0:30: Больше хороших новостей для бога хороших новостей! Сто баллов у Макса по второй, 21 у Леши по первой.

-0:20: Макс и Леша сделали сорок по первой задаче. Тем временем у Johnny Ho 300 баллов, а у Гены день рождения, с чем мы его и поздравляем.

-0:15: У Леши 57 по первой задаче. Не хватает только сотни от Егора по второй для симметрии Вселенной и Высшего Блага и сотни от Гены по первой.

-0:05 Пять минут до конца контеста. Макс продолжает отжигать: 58 баллов по первой задаче, 258 в сумме и седьмое место, с чем мы его и поздравляем.

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

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

»
12 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

что такое "множество бамбуков" ?

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +9 Проголосовать: не нравится

    Бамбуком называют граф-цепочку (то есть степени всех вершин не превосходят двух).

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

"Балл за задачу зависит от длины программы"
А что это значит? Сравнивается длина кода в байтах?

»
12 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

А сколько на 100 в подзадаче 5 задачи A? Upd. И известно ли начальное положение?

»
12 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится

я правильно понимаю, что можно отменить узнавание K-й буквы строки? т.е "отузнать ту букву обратно"

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +9 Проголосовать: не нравится

    Я призываю сюда Капитана!

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

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

      Всегда Ваш, Капитан.

»
12 лет назад, # |
  Проголосовать: нравится +21 Проголосовать: не нравится

Болею за участника "Daniel Hui".

»
12 лет назад, # |
Rev. 3   Проголосовать: нравится -35 Проголосовать: не нравится

а почему Гена участвует, он же уже вроде закончил школу, нет? собственно как Суворов, Ахмедов и прочие перцы

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится

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

  • »
    »
    12 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +12 Проголосовать: не нравится

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

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится

      спасибо за объяснение

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Интересно. В IMO, насколько я знаю, критерий не быть студентом высшего учебного заведения (когда-либо до проведения IMO) и быть моложе 25 (тут могу ошибаться). В школу ходить не обязательно

      • »
        »
        »
        »
        12 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

        Нужно просто посмотреть в правила IOI:
        S2.5 A Contestant is a student who was enrolled at a school for secondary education, in the Country they are representing, during the period September to December in the year before IOI’n, and is not older than twenty years on the 1st of July of the year of IOI’n. Students who are studying abroad may represent the Country of their nationality.

        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Поправка — на IMO тоже 20 лет ограничение на возраст, но требования обучения нету

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится -14 Проголосовать: не нравится

    На IOI могут участвовать студенты первого курса...

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

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

»
12 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Очень похоже на слив.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится

    Чей?

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +9 Проголосовать: не нравится

      .

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится

      A) Гены (у него место > 1 слив, такая уж планка ;) )

      B) Нашей сборной, если только не напишут лучше второй день. Пересчитал по 1/12 золотые, по этому показателю полет нормальный.

»
12 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

А можно понять, чем занимается Егор?

»
12 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

В общем, Макс молодец, Олег и Лёша нормально, Егору можно и по ушам. Ждём мыслей участников, хотя им бы пора и дорешивать^Wотдыхать.

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

А Егор на самом деле так и не улучшил 49-55-100? Тогда это немного печально; ну, ещё второй день есть.

А в целом российская сборная — молодцы по первому дню.

  • »
    »
    12 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

    Честно говоря, если вторая задача такая, как написано выше, то по меньшей мере грустно, что они не все её решили:(

    Но они еще себя покажут, я думаю:)

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +43 Проголосовать: не нравится

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

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

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится

        В общем-то, получается построить более или менее элегантную реализацию всего происходящего в В:

        Пишем структуру, которая обрабатывает добавления ребер и делает три вещи:
        а.1) проверяет наличие хотя бы одного цикла в графе;
        а.2) проверяет наличие вершины степени 3 и, если она существует, говорит трех ее соседей;
        а.3) проверяет возникновение второго цикла в графе.

        Дальше так: храним изначально в такой структурке граф. Пока не произошло а.1 или а.2, отвечаем N.

        Если произошло a.2, то ставим мега-флаг и c этого момента создаем 4 структуры выше для случаев удаления (вершина или одна из ее соседей), как только какая-то из них говорит а.[1-2] выбрасываем ее. Ответом будет количество еще живых структур.

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

        Если произошло а.3, отвечаем 0 отныне и вовеки веков.

        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится +8 Проголосовать: не нравится

          Я написал ровно такое решение. Действительно достаточно простое и красиво.

          К слову наличие одного или двух циклов я обрабатывал с помощью СНМа. Просто СНМ не проходил по времени вторую и пятую группу. я переписал на струкуру, умеющую обрабатывать это за O(1), но она получилась достаточно мерзкая. Как оказалось, достаточно было сделать запрос в СНМе рекурсивным, но я об этом почему-то не подумал :-( Разворот рекурсии дал реальный прирост в три с хреном раза, я аж не ожидал.

          • »
            »
            »
            »
            »
            »
            12 лет назад, # ^ |
            Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

            Наличие одного и двух циклов — возврат СНМ:merge, да.

            То, что СНМ заТЛил это крайне странно. Миллион запросов для него звучит как "раз плюнуть" в реализации с рангами и сжатием.

            • »
              »
              »
              »
              »
              »
              »
              12 лет назад, # ^ |
                Проголосовать: нравится +5 Проголосовать: не нравится

              помогите расшифровать СНМ, пожалуйста

              • »
                »
                »
                »
                »
                »
                »
                »
                12 лет назад, # ^ |
                  Проголосовать: нравится +8 Проголосовать: не нравится

                Система непересекающихся множеств

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  12 лет назад, # ^ |
                    Проголосовать: нравится +2 Проголосовать: не нравится

                  спасибо. думал английская аббревиатура

»
12 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Г– н тренер, почему у вас цвет ниже, чем у участников?

  • »
    »
    12 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Он еще не обратился в мою компанию.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +40 Проголосовать: не нравится

    Чукча не программист, чукча блогер.

  • »
    »
    12 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится +52 Проголосовать: не нравится

    Потому что господин тренер не обязан сам писать контесты лучше участников. Представь себе, есть чемпион мира по бегу. У него есть тренер, да и не один, наверное. Тренер бегает быстрее чемпиона? Если быстрее, то почему же тогда он сам не чемпион? А если медленнее, то нужен ли такой тренер? Судя по тому, что тренеры не перевелись еще ни в беге, ни в спортивном программировании — нужен.

  • »
    »
    12 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +15 Проголосовать: не нравится

    1. Цвет на Codeforces зависит от очень многих факторов: цель иметь как можно более хороший цвет, наличие свободного времени, владение конкретным форматом соревнований, навыки олимпиадника, навыки программиста, знание теории... Если этот список отсортировать по важности, качества человека как тренера и переводчика условий в нём довольно далеко.

    Ну и ещё, чтобы не скучно было, тролльский вопрос:

    2. Зачем тренировать кого-то, кто ниже тебя уровнем? Не лучше ли потратить это время на себя любимого?

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 3   Проголосовать: нравится +8 Проголосовать: не нравится

      похоже, автор вопроса троллил AlTimin

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +10 Проголосовать: не нравится

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

      По поводу пункта 2: для самоудовлетворения, может быть? Ну или для собственной прокачки. А потратить время на себя всегда хорошо, да.

      Извиняюсь, если задел чувства кого-то из тренеров.

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +31 Проголосовать: не нравится

      2. Чтобы получить приз "тренер года" от snarknews, очевидно.

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

      2 — это, надеюсь, несерьёзное трололо, а не реальное мнение? Т.к. если таким принципом руководствоваться, человечество стремительно деградирует в абсолютный ноль. Или если рассматривать локально, если человеку с высоким уровнем чтобы прокачать себя на 1 уровень требуется 100 единиц усилий, то чтобы прокачать более низкоуровнего человека на 1 уровень — 1 единица усилий. В итоге он может существенно повысить уровень большого числа других людей, вместо того чтобы чуть-чуть прокачаться самому. Выгода очевидна.

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится

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

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится +8 Проголосовать: не нравится

        (2 это не очень серьёзно, но некоторая доля правды в этом есть, так что продолжим)

        Выгода не очевидна, так как непонятен критерий. Совершенно не обязательно 100 программистов 2-го уровня + 1 программист 100-го уровня лучше, чем 100 программистов 1-го уровня + 1 программист 101-го уровня.

        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится +9 Проголосовать: не нравится

          Прокачанные low-level'ники будут прокачивать ещё больше low-level'ников и качаться дальше. Вместо одного крутого одиночки можно получить кучу команд индивидуально менее крутых программистов, но каждая из команд уже круче того одиночки 100ого левела.

          А что команда слабых людей сильнее одного сильного, — это неоднократно проверенный факт. Например, вспоминая какие-то из не очень старых Петрозаводских сборов, там команда Unpredictable все сборы шла вровень с командой Tourist, периодически меняясь с ней местами; при этом индивидуально из команды Unpredictable ни один из участников даже рядом не стоял с Геной в области спортивного программирования.

          • »
            »
            »
            »
            »
            »
            12 лет назад, # ^ |
              Проголосовать: нравится +9 Проголосовать: не нравится

            Зато Гена (программист 101 уровня) качается сам, а не учит других, и выгода ему от этого есть.

            • »
              »
              »
              »
              »
              »
              »
              12 лет назад, # ^ |
                Проголосовать: нравится +74 Проголосовать: не нравится

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

      • »
        »
        »
        »
        12 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

        чтобы прокачать себя на 1 уровень требуется 100 единиц усилий, то чтобы прокачать более низкоуровнего человека на 1 уровень — 1 единица усилий.

        А не ошибка ли это? Кажется, что параллельно с уровнем прокачиваются навыки "соображай/придумывай" намного лучше, чем когда все на блюдечке с голубой каёмочкой. Грубо говоря, оценка не учитывает, что состояние системы содержит первую производную уровня.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +18 Проголосовать: не нравится

    Ученик должен превосходить учителя.

»
12 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

Пишут в newsletter, что была конференция для юных падованов Италии и приезжал сам eduardische

»
12 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Пожалуйста напишите таблицу резултатов.Я не могу открыть эту таблицу.

»
12 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Известно ли точное число участников?
 Ведь от него зависит распределение медалей !!!
UPD. Минусующие знали число 313? Или не интересно кто какую медальку получит?

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Если я правильно правила понимаю, то золото 1-27 места, серебро 28-79, бронза 80-156. Но может быть больше золота и серебра из-за дележей на границах золото-серебро, серебро-бронза, и меньше бронзы, если будет дележ x-y, где x<=156 && y>156. Причем места здесь нужно считать без учёта участников из Италия-2.

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Спасибо за информацию! :)
      Как распределяются медали в правилах прописано. Главное — знать число зачётных участников. Итак, будем "болеть" исходя из 313 "желающих": 1-27, -79, -156.
      Ни пуха!