Блог пользователя package.zaic

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

Привет, Codeforces!

В этом году состоится уже XVI Открытая Всесибирская олимпиада им. И. В. Поттосина — масштабное соревнование по программированию, в котором принимают участие студенты вузов со всей России, а так же стран СНГ. Олимпиада состоит из отборочного и очного этапов. Отборочный этап проходит через интернет в формате ACM и участвовать в нём могут все желающие команды. Основной язык олимпиады, на котором написаны условия задач и происходит общение с жюри, — русский. В очный этап проходит 50 команд, при этом для команд от Сибири и Дальнего Востока выделяется квота не менее 50% от общего числа участников очного тура.

Очный этап традиционно состоит из двух туров. Один из них проходит по правилам ACM-олимпиад: 8-12 задач, на решение которых отводится 5 часов. Второй тур представляет из себя одну "большую" задачу, которую участники так же решают в течение 5 часов. Тематика задач такого тура разнообразна: ранее были игровые задачи, где участники писали ботов, соревнующихся друг с другом, задачи на параллельное программирование, просто сложные задачи, в которых требовалось написать хотя бы частичное решение. Более подробно правила и положение олимпиады можно прочитать здесь.

Отборочный интернет-тур состоится завтра, 4 октября, в 11:00 по московскому времени. Очный тур пройдёт в Новосибирске с 7 по 9 ноября.

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

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

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

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

Что нужно ввести в поле "Я согласен с условиями политики конфиденциальности (Да / Нет)", чтобы зарегистрироваться? И куда установить радио-баттон?

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

Просьба при наличии логина в opencup (Я.контесте для Div1 или ejudge для Div2) указывать этот логин в регистрационной форме NSUts; для Div2 в скобочках указывать (2).

Задачи на Гран-При Евразии будут общими для двух дивизионов, но отдельный зачёт по дивизионам всё равно будет.

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

    Где указывать? В регистрационной форме указывается только email?

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

      При заполнении формы есть и поле "логин опенкапа".

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

        Я так и не понял, что указывать, если логина нет. Написал "-".

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

          Ну вот например. Или "Нет логина".

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

            Точнее "No login". Кириллица не поддерживается, как я понял.

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

              А вроде бы у вашей команды был логин и даже сектор?

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

Не много запутался на сайте. Ссылки на интерент-тур нет? Есть пока только ссыль на пробный тур...

(UPD) всё появилось.

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

Тестирование вообще собираетесь поднимать?

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

    Да, собираемся, в данный момент и работаем над этой проблемой

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

    Проблемы с тестированием решены. Все посылки, висевшие в очереди, в данный момент протестированы.

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

А бывает выгодно в 10й задаче идти ровно на расстояния mpi? Может кто получал WA7?

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

    Есть подозрение, что WA7 — это если разрешить проходить через города (и останавливаться в них). По крайней мере, когда я это разрешил — я получил WA7.

    Более интересный вопрос — что такое WA11. Я перепроверил свой код 57 раз и представить не могу, в чём может быть проблема...

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

      Мы это как раз обработали :-)

      Теперь ОК

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

      11й тест как раз на проверку того, что нельзя стрелять, стоя в городе.

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

        А 42-ой?

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

          42й — просто рандомный, не очень большой тест.

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

            What is wa13? My idea is mincost-maxflow

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

              13th test: one city with 18 HP and surrounded by 18 catapults

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

              Интересно, а есть ли какое-нибудь другое решение, кроме как mincost-maxflow?

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

                Зачем минкост? Просто поток, без стоимостей.

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

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

                  Но можно и добавить фиктивный город, тогда будет просто поток.

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

                  Мы просто аккуратно восстанавливали ответ.

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

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

        Не уверен что правильно понимаю — зачем запрещать стрелять стоя в городе, если туда даже зайти не получится?

        Я был бы очень благодарен, если можно было бы посмотреть на тест.

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

      Вы учитываете, что можете случайно прийти какой-то катапультой в то место, где уже стояла другая, в текущем раскладе не используемая?

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

Как решать задачи Букет,Хэш-функция,Плэй-офф?

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

    Задача 9. Хэш-функция.
    В задаче ответ есть всегда единственный.
    Надо нарисовать эти сложения и XOR на бумажке в столбик и заметить это.
    Рассмотрим самый простой пример.
    Знаем c, знаем с = a ^ (a<<16), найдем a.
    Обозначим b = (a<<16).
    Младшие 16 бит a равны младшим 16 битам с. Установим эти биты в a. b = a << 16. И тогда a = с — b.
    Аналогично для других сдвигов, только там эти операции надо повторять несколько раз.

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

    Хеш-функция — вглядываемся в то, что там происходит и получаем такую функцию обращения: #rx8VI4

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

    Можно заметить, что x+(x<<16) = x*(2^16 + 1), то есть можно домножить на обратный к 2^16+1 по модулю 2^32 (он существует, потому что число взаимно просто с модулем). Для xor выше написали.

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

      Мдаа, когда мы писали эту олимпиаду, я для x + (x << ?) прям длинку своеобразную прописывал, а оказывается, что так можно было

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

Как решать задачу 3-Неравенства? Что за 12ый тест?

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

    Скажем, что xi > xj или xi ≥ xj — это ребро из i в j. Числам тоже сделаем мнимые вершины. Далее сконденсируем полученный граф. Если в какой-то КСС есть два разных числа или есть  > , а не только  ≥ , то ответ не получить. Иначе пытаемся поставить его по топологической сортировке компонент сильной связности как динамика по ориентированному ациклическому графу (возможно, не получится, тогда тоже NO).

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится +85 Проголосовать: не нравится
Комментарий удален по причине нарушения правил Codeforces
  • »
    »
    9 лет назад, # ^ |
    Rev. 5   Проголосовать: нравится -44 Проголосовать: не нравится

    Окей, как оказалось со мной согласны уже как минимум 60 человек, так что не буду держать свои мысли в себе.

    1) Почему вы запилили свою систему проверки, если не умеете? Остальные обладают фатальным недостатком? Или, может быть, ответственные за Я.Контест и snark вам отказали в помощи?

    2) Почему задачи такие мерзкие и простые? Нет, серьезно, лучше не включать такие задачи, как 12, в контест, чем включать.

    3) За каким чертом я обязан себе ставить MinGW или вижак и проверять, компилируется ли все, что я отсылаю, на них, если вы даже в положении не написали о компиляторах? Лол, да в каждом компиляторе свои заморочки.

    4) Что еще за бредятина с минусами за 1 тест? Или у вас с long double все нормально во всех компиляторах?

    5) Очень круто продлевать тур на 15 минут, если по факту это абсолютно ничего не дало тем, у кого были проблемы с тестирующей системой? Почему не продлили на столько, сколько у вас ничего не работало? Ну 15 минут у нас задача стояла в очереди, а потом еще 25, после чего не скомпилировалась (см пункт 3), очень нам продление помогло.

    6) Далее неправда, зачеркнуть не получилось. Почему у вас тур пересекается со сборами в физтехе? Как много команд из топ 25 поедут к вам посреди сборов? Лично мы не поедем посреди сборов. Или это такой неофициальный фильтр, что ждете на онсайте вы только свои команды?

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

      Хм, интересно, а где Всесиб пересекается со сборами? Там же онсайт 7-9, а сборы — 10-21, так что все нормально. Поправьте, если я не прав)

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

        Извиняюсь, тут я оказался упорот и перепутал

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

          Давно такого не было, но в этом году снова Всесибирскость олимпиады показалась еще до очного тура. Да, я тоже считаю, что некорректно продлевать тур на 15 минут, когда последние минут 20 + 15 добавленных не приходили вердикты по отправленным решениям. Но, как можно заметить, это никого не удивило. Задачи? Средней годности. Как всегда, куча дабловых задач, математики и геометрии. Куда без этого, специфика ВСО. Поверьте, эта олимпиада сделала большой шаг вперед по сравнению с тем, что было с ней лет так 7 назад.

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

      Я не организатор

      1) Потому что она была до Я.Контеста (если не до яндекса, лол) ?

      2) Задачки на удивление годные. Да, в большинстве своем простые, но это же отбор.

      3-4) У вас просто бомбит.

      6) Не пересекается же.

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

        1) Тем хуже. Груз времен таки задавил значит.

        2) Не согласен, но пусть. На вкус и цвет.

        3-5) Что-то не по делу?

        6) Уже написал, что не прав.

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

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

          3) Не по делу. Компиляторы у всех свои.

          4) Совсем не по делу. Насколько я помню, на полуфинале даже за CE два года назад давали минус.

          5) По делу.

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

            2015 год, нет поддержки c++11 <3

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

              Вообще-то есть Visual C++ 2013. Получше даже, чем здесь.

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

              Она есть, просто об этом нигде не написано. Надо было обратить внимание, что gcc версии 4.8.1 и на пробном туре попробовать послать что-нибудь из 11 Стандарта.

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

      А знаете, насрать. Но может хоть задумаетесь.

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

      Лично мы не поедем посреди сборов.

      Писали бы в Яндекс.Контесте тогда. Все твои проблемы решил, обращайся.

      Я может чего в этой жизни не понимаю, но люди берут и делают контесты. Контест как контест. 10 задач простых, я согласен, это перебор. Но контесты разные бывают. Люди берут и делают олимпиаду. Да, там возможно тоже все не идеально, но и денег не берут, вроде.

      МИФИ вот не делает контесты и олимпиады, зато обижает людей из Новосибирска.

      А из-за даблов тут на нерке некоторые пацаны в финал не поехали и не ноют.

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

        Сначала смоги, да?

        Грубый фидбек хуже отсутствия фидбека?

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

        P.S. Про пересечение онсайта и сборов там жирным выделено, так что твой наброс не по делу, читай внимательнее, пожалуйста.

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

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

        Абсолютно с Вами согласен! Так как МИФИ не делает контестов, то у ребят из МИФИ нет никакого права указывать на недостатки других контестов.

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

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

      1) По поводу "не умеете" оправдываться не буду. Вопрос "зачем?" не так прост, как кажется. Иначе не было бы такого количества разных систем тестирования сегодня. Да, система nsuts появилась до системы yandex.contest.

      2) Да, контест простой, меня это тоже не радует, как и вас. Обычно интернет-туры всё же были посложнее. Однако это отборочный раунд, так что это не так критично. В любом случае, будем стараться приготовить нормальные задачи в очному туру. В качестве примера можно посмотреть, сколько Гена и его друзья нарешали в прошлом году.

      3) Бессмысленная жалоба. Большинство тестирующих систем проводят тестирование под одной операционной системой, из-за чего компиляторы C++ неизбежно ограничиваются тем или иным набором. Такова реальность языка C++, если вы пишете на нём, учитесь пользоваться различными компиляторами. В нашем случае тестирование идёт под виндой, поэтому Visual C++ и MinGW GCC являются двумя наиболее популярными вариантами компиляторов C++. В ejudge и yandex.context тестирование идёт под линуксом, соответственно там стоит родной GCC, а Visual C++ не стоит и никогда стоять не будет. Это тоже не радует некоторых людей, как минимум меня. Однако я решал OpenCup на ejudge и не жаловался.

      4) Интересный вопрос. Мне казалось, за неверный ответ на первом тесте в системе ACM тоже начисляется штраф. В официальных правилах это как-то не прописано. Возможно, мой опыт в этом вопросе безнадёжно устарел?

      5) Да, в данном случае продление тура не решило проблемы, а лишь растянуло время неразберихи. Конец контеста действительно не удался. Прошу прощения за это.

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

        По поводу 3: если выделить вот эту фразу:

        даже в положении не написали о компиляторах

        то жалоба осмысленна. Если, конечно, действительно не написали о поддерживаемых компиляторах и опциях компиляции.

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

        Большое спасибо за комментарии

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

Задача 5. Спортивное ориентирование. Писал дейкстру на JAVA. В графе (1_600 * 20) вершин, (1_600 * 20 * 1_600 * 2) ребер.
Получил сначала Time limit exceeded (test #32), потом Time limit exceeded (test #33). Кто-нибудь на JAVA сдавал? Или такое только на C++ заходит? Или есть более оптимальное решение?

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

    Можно считать дейкстру 10 раз на графе с 1600 вершинами и 16002 рёбрами

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

    У меня на джаве сразу зашло: 20 дейкстр на графе 16002 рёбер. Главное — писать за n2 + m, а не за .

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

19 тест в задаче 3. Что это?

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

    У нас 19й не заходил из-за мелкого бага с циклами

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

      А какая именно бага?

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

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

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

По задаче 1 посылка в 14:23:43 (MinGW C++ (GCC 4.8.1)) получила WA1. При изменении вывода long double на double (через cout) и установки cout.precision(6) вместо 10 решение зашло. Больше ничего не менялось. Почему при увеличении точности решение может перестать проходить? Посмотрите, пожалуйста.

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

    Нам в кларах указали "MinGW неправильно работает с выводом long double. "

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

      А всё почему? Потому что стандартная сборка MinGW безумно устарела и надо переходить на TDM-GCC или что-то похожее.

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

        Да, есть такое в планах. Там заодно и со всякими to_string проблема решится.

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

        Интересно, насколько вариант TDM-GCC популярен в олимпиадном программировании?

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

          Не так много систем использует винду. Эта сборка gcc точно используется на Codeforces и с недавнего времени на внутренних тренировках и чемпионатах СПбГУ.

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

      Я стараюсь убедить своих коллег-олимпиадников в том, что long double — зло, но пока не получается =) Вот смотрите сами:

      1. На Visual C++ 10-байтового long double нет, там этот тип эквивалентен double. И это вполне укладывается в стандарты C/C++ =)

      2. Под MinGW, как мы выяснили, long double не всегда нормально работает.

      3. GCC честно компилирует long double в операции над 10-байтовыми вещественными числами сопроцессора FPU (x87). Это древний набор инструкций, который был заменён уже дважды: сначала SSE/SSE2, а потом ещё AVX, в которых 10-байтовой точности нет. Где-то я слышал слухи о том, что на 64-битной архитектуре x87 объявили deprecated, хотя подтверждений этому найти не могу.

      Ну и естественно, поддержка long double требует оригинальных решений на всех уровнях. В компиляторе нужно оперировать со словами размера 10 (не степень 2, не делится на 4), в результате чего размер long double вырастает до 12 или 16 байт. На уровне процессора нужно предсказывать, куда приедет какой операнд на FPU стэке. Естественно, когда FPU появлялся, никому это не казалось проблемой, ведь об out-of-order execution, без которого сегодня процессор работать быстро просто не может, никто не подумал.

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

Как решать 7-ю? У нас WA 23 (это вроде первый тест после семплов, где нужно искать касательную). Код несколько раз перечитывали, бага не ищется =(

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

    Нужно учитывать, что кратчайший путь — не всегда отрезок и две дуги параболы. В тесте 23 кратчайший путь — по отрезку (не вертикальному).

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

    Мы у Олега попросили тест:

    input:
    0.973033
    -1.171615 0.382832 0.124928
    4.294446 0.985231 0.439197
    
    output:
    1.003649438
    
    

    Там картинка выглядит так:

    Ответ — AB, а отрезок касательной CD. Мы правильно поняли, что ответ — идти не по отрезку касательной, а что надо его загнать в полосу, но чутка неправильно это делали.

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

      Ага, мне уже дали тест, и я уже досдал. В каком-то совсем простом месте l и r перепутал, досадная бага =(

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

        So what is the solution? (In english please?)

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

          There are 4 possible cases:

          1. There is path of length 1
          2. Path is a segment between 2 intersections of parabolas with corresponding road boundaries (further referred to as simply "intersections").
          3. Path is a tangent from intersection to a parabola on other side + arc on the parabola
          4. Path is a common tangent between 2 parabolas + 2 arcs.
»
9 лет назад, # |
  Проголосовать: нравится -30 Проголосовать: не нравится

Привет авторам задачи "Ставки" от всех, кто не запихал это дело. Если честно, задача очень и очень плохая (или у меня руки совсем не из того места растут), так как не сдалось даже не бигинтах на джаве (ВА 9).

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

    Привет. Задача — боянище тысячелетней давности.
    Надо определить, верно ли неравенство 1/a + 1/b + 1/c < 1.

    http://ideone.com/xeIW1P

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

      оО у нас без +0.5 не заходило, в чем магия?

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

        a * 100000 может округлиться как в одну, так и в другую сторону, потому что число a до умножения может не иметь точного представления в двоичной системе счисления.

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

          м-да, честно говоря, я верил в то, что первые N цифр (до точки + после точки) поддерживаются всегда точно.

          Спасибо!

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

            Это верно только в двоичной системе. Уже 0.2 представляются в двоичной системе периодической дробью.

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

        Ньюфаги не знают: http://ideone.com/wpPzsE

        (это был взлом на одном из древнейших раундов)

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

      1582. Букмекеры
      Вот этот боян =)

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

      Ну да, мы решение придумали, но сравнение как-то через одно место получилось.

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

    Там же long long хватает. Нужно просто сравнить с 1 или c , теперь всё целочисленное, считаем дробь и сравниваем стандартно.

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

    Почему бы не сделать честно и не прочитать ТОЧНО с помощью строк и перевести в i64 *10^5.

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

    Привет :) Автором задачи "Ставки" был я, хотя, как уже написали выше, она оказалась баяном :(

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

    1. Поскольку деление даблов даёт погрешность, а нас определять ответ просят точно, то считать здесь надо в целых числах (например, сами числа домножить на 105, а в неравенство домножить на wdl), либо использовать что-нибудь точнее double (например, в той же джаве есть BigDecimal).

    2. Вещественные числа представляются таким образом, что даже числа с небольшим количеством знаков до и после точки будут храниться с погрешностью (выше есть один из самых простых примеров: 0.29), поэтому читать и преобразовывать к int'y их надо аккуратно.

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

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

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

        a, b, c — даны, найдем такие x, y, z, что выполняются неравенства

        a*x > x + y + z
        b*y > x + y + z
        c*z > x + y + z
        

        =>>>

        x > D/a
        y > D/b
        z > D/c
        D = x + y + z
        

        =>>>

        D/a + D/b + D/c < D
        

        D — произвольное положительное, возьмем, например, D = 1 и получим то, что хотели.

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

          Для полного доказательство: x = D/a + eps, y = D/b + eps, z = D/c + eps, eps > 0

          x + y + z = D/a+D/b+D/c+3*eps = D

          если D/a+D/b+D/c < D то можно найти такой eps.

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

как решать 4-ю?

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

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

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Бинпоиск тут в общем-то, лишний. Просто надо вести кусочно-линейную функцию из стартовой точки с максимальной S*sigma как можно дальше, а потом делать отсечку в точке с заданной длиной проволоки. Бинпоиск фактически все это и делает.
»
9 лет назад, # |
  Проголосовать: нравится -15 Проголосовать: не нравится

1152 засыла по "ставкам" :) и всего 65 аксептов :)

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

Где можно прочитать официальные правила соревнования?

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

      Это я видел :) Это как-то слабо напоминает правила, ну да ладно.

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

    Основной страницей олимпиады можно считать http://olimpic.nsu.ru/widesiberia/2015/news и все те ссылки, откуда с этой страницы можно уйти. Или интересует какой-то конкретный вопрос, на который нет ответа в положении?

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

      Есть ли ограничение на кол-во команд от вуза? В прошлом году были, а сейчас про это ничего.

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

        Для "Европейских" вузов (до Урала) есть ограничение не более 2 команд от вуза.

        Для "Сибирских" вузов (Урал и восточнее) ограничений на число команд нет.

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

          А вы в каждом году отдельно выбираете, относить Урал к Сибири или нет?) И по какому критерию?)

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

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

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

        Да, сборные команды из разных вузов допускаются.

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

          Как тогда распространяется квота на вузы на эту команду? И почему нашу команду с 11 задачами на 9 месте отправили в список запасных? :(

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

      А когда будут выложены списки приглашенных команд?

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

где можно дорешать задачи?

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

    Потом дорешка откроется. Там же.

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

      А на opencup уже давно открыта. Задачи-то те же.

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

    Открыл дорешивание в олимпиаде "Тренировки".

    Немного о том, как в него попасть. Допустим, вы уже зашли в nsuts. Кликаете на название олимпиады "XVI Открытая Всесибирская олимпиада по программированию имени И В Поттосина" в правом верхнем углу, дальше выбираете олимпиаду "Тренировки". Если её нет в списке, регистрируйтесь на неё (ссылка ниже списка олимпиад). Дальше выбираете тур "Интернет-тур XVI Всесибирской олимпиады: дорешивание", и можно сдавать.

    Конечно, можно также сдавать в дорешивание OpenCup-а.

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

Как решать 8? Пытался перебрать все варианты, однако не совсем работало( Объясните пожалуйста как решать

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

    f[i][s][fl] — максимальное количество различных цветов, после того как посмотрели первые i, набрали сумму s, fl == 0, если раньше такой цвет не брали, и fl == 1, если брали.

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

    Сортируешь цветы по типу. Пишешь обычный рюкзак, но кроме dp[w] хранишь еще и last[w] — последний используемый тип для набора цветков на сумму w.

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

Is there any good implementation of problem J?

I don't like my implementation. It cost me 2 hours in total.

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

Будет ли этот контест выложен в тренировки?

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

Подскажите, как же решать задачу Плэй-офф из див2?

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

    Построим граф в явном виде. Теперь на запрос АB отвечаем так: пытаемся пройти от A к корню, если на пути есть B, значит, что B сильнее А, аналогично идем от B к корню и пытаемся найти А, тогда А будет сильнее. Если ничего не получилось, выводим "Unknown".

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

[ DELETE такой пост уже был =) ]

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

есть табличка с текущими результатами в I номинации?

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

А в 5-й решение быстрее O(N2 * M2)?

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

    У нас O(n2m2). Можно прикрутить быстрое умножение многочленов, наверное, но вряд ли это хоть сколько-то улучшит время работы.

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

    а зачем, итак проходит за 210ms

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

задача 3. у меня зашедшее решение (n^2 с отсечениями) очень плохо работает на тесте генерируемом этим генератором

from random import randrange
n = 100000
print(n)
print(n-2)
for i in range(n-2):
  print('%d %d' % (i+1,i+3))
m = n
print(m)
for i in range(m):
  a = b = -1
  while a%2==1 or b%2==0:
    a = randrange(0, n)
    b = randrange(0, n)
  print('%d %d' % (a, b))
  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Может тогда стоит ещё и решение в пост добавить, а то как-то не информативно :)

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

      Решение:

      1. выделяю компоненты сильной связности
      2. нахожу на них топсорт order, перенумерация всего.
      3. сортирую ребра по убыванию.
      4. сортирую ci, di в порядке убывания позиции di.
      5. отвечаю на текущий запрос dfs-ом, хожу только по вершинам из которые не раньше di в топсорте (обеспечивается тем что делаю pop_back() ненужных вершин в каждом списке связности)
»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Расскажите, пожалуйста, как решать задачу 3?

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

    Сожмем компоненты СС. Так же как в транзитивном замыкании за O(nm / 64), только храним не битсет со всеми вершинами, а только с 64. Запускаем n / 64 раза.

    P.S. Конечно же, ответа либо нет, либо это граф из уже заданных отношений первого типа.

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

      На самом деле 64 — плохой выбор. Гораздо лучше делать битсеты существенно большего размера. Оптимальный вариант — 8 КБит.

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

        А сколько авторское на Яндексе работает, у нас 1.7с

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

          У меня на компе моё решение с размером блока 8К работает 1.7 сек, а с размером 64 работает 8.7 сек. Конечно, в нём получается цикл длины два, так что работать может несколько медленно. Кроме того, у нас на Всесибе компиляторы все 32-битные, а в yandex.context, что-то мне подсказывает, есть 64-битные, и int64 работает весь целиком.

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

    Вот, что сдали команды из СПбГу

    Добавляем все ребра первого типа. На новом графе нужно проверить, есть ли пара вершин, между которыми есть путь.

    Конденсация + N^2 / 32. В память все не влезало, поэтому нужно было по слоям считать битмаски.

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

    Видимо число 32 в эпиграфе было не просто так :)

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

    А расскажите, кто-нибудь умеет объяснять, почему эта задача не проще, чем reachability problem? Или, наоборот, приводить решение за время лучше O(VE / 32 + Q)? У меня было очень стойкое ощущение, что можно как-то воспользоваться спецификой, что нам не нужны точные ответы на каждый запрос, а надо только узнать, есть ли хотя бы одна из данных достижимостей, но довести ни до чего не удалось.

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

      Вот решение от какой-то из команд АУ.

      "и есть внезапно честное решение за n+m от АУ: вот есть запросы: путь u_i -> v_i не существует добавим в граф рёбра v_i -> u_i и назовём их красными тогда нужно проверить, что в сконденсированном графе нет ни одного цикла с ровно одним красным ребром и они вроде доказали, что честный dfs этот цикл найдёт, если он есть.

      сначала по обычным ребрам бежать нужно"

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

        А поподробнее про то, как детектить цикл с единственным красным ребром можно?

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

          Авторы говорят, что нашли контртест.

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

      Я умею сводить dynamic strong connectivity, если на все вопросы второго типа добавлять обратное ребро из b в a, запрос на принадлежность одной КСС, и удаление этого ребра. Но я понятия не имею, можно ли ее решать быстрее.

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

    UPD Видимо, я их не так понял.

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

      Казалось бы, это неправда, например возьмем граф из трех вершин без ребер. И сделаем из ребер второго типа цикл.

      PS. Если это действительно заходило, то авторам тестов -100 к уважению.

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

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

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

      Ну в таком виде точно неверно. Пусть граф состоит из четырех вершин, есть ребра (1, 2) и (3, 4), и запросы достижимости из 2 в 3 и из 4 в 1. Тогда в названном графе будет цикл, хотя этих достижимостей нет.

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

в 5ой задаче WA 9. ни у кого не было?

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

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

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

Как решается задача 11 (Побочные эффекты) и задача B. Painting Tracks из див2.(о полосах из прямоугольников). Спасибо.

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

    11 — добавляем обратные дуги из ввода вместо прямых. Если добавилась дуга из черной в белую, то запускаемся дфсом из черной и красим рекурсивно все встретившиеся на пути белые. Таким образом, каждая белая вершина покрасится только один раз -> O(N).

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

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

Как решать 8? Кто-нибудь упихнул fft?

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

    У нас FFT получает TL 1 :)

    Нужно объединить отрезки (получится снова набор отрезков, но теперь они не пересекаются). Пара отрезок + переход даёт +1 какому-то отрезку сдвигов. Нужно на этот отрезок прибавить +1, а потом найти лучшую точку. Прибавлять на отрезок можно в оффлайне префиксными суммами.

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

    Зачем fft? :) Для начала избавимся от пересекающихся и касающихся отрезков, объединив их. Представим себе, что мы взяли и все перекрёстки унесли куда-то далеко влево и начинаем перемещать их направо. Как только одна точка попадает в отрезок, тогда к счётчику +1, как только выходит — -1. Соберём все такие события, отсортируем (можно подсчётом), пройдёмся, найдём максимум. Ну и не забудем, что иногда хорошо не двигать вообще ничего.

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

      Потому что сразу не заметил n <= 1000, m <= 10000, но заметил a[i] <= 1000000

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

    Об FFT мы подумали только в пятницу =)

    На самом деле, ограничения были не в пользу FFT. Если увеличить N и M, а также уменьшить L, то получилась бы задача на FFT. Но увы =)

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

Как решать 5 задачу(про арифметическое выражение)?

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

    Две динамики от двух параметров -- длина и остаток по модулю. Первая -- количество выражений, второе -- количество атомов (чисел или выражений в скобках). Для того, чтобы получить выражение длины N, перебираем длину первого атома K и получаем переход вида

    dp[N][mod_left +/- mod_right] += atoms[K][mod_left] * dp[N-K-1][mod_right]
    

    И не забыть про выражения вида ((((1+2)))).

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

      а разве не будут выражения типа 1+1+1 учитываться по нескольку раз?(мы можем прибавить к выражеию (1+1)+1, а можем 1+(1+1))

      у меня была похожая динамика(только без атомов), dp[i][j] += dp[k][m1] * dp[i - k - 1][+/-(j - m1)]

      И я не совсем понял, для чего атомы(и как они считаются)

      и там(в формуле) умножить или складывать надо?

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

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

        Да, умножить надо, конечно. Поправил.

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

          Я имел ввиду, что в выражение 1+1+1 можно посчитать двумя способами(вначале к первым двум прибавить третье, либо к первому прибавить второе и третье. Не будет ли это считаться как два разных способа?)

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

            1+1+1 не будет считаться как 1+[1+1], поскольку второе слагаемое должно быть неделимым (атомом), в то время как вариант [1+1]+1 — правильный

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

              аа, все, понял(только в решении

              UPD неправильно понял

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

      А зачем две динамики, когда можно обойтись одной? Первое слагаемое всегда либо число либо, либо что-то окруженное скобками.

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

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

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

          да, спасибо, зашла задача(правда, я использовал одну динамику)

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

А есть у кого-нибудь итоговая табличка (может, в виде фотки с закрытия) -- для тех, кто улетел утром?

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

Мы тут подумали над нашим феерическим выступлением немного и поняли, что в задаче А сдали неверное решение. А именно, вместо выкидывания двух вершин и проверки на двудольность мы выкидывали два ребра и проверяли на двудольность (ребра выбирали только из найденного нечетного цикла). Это не работает на тесте с полным двудольным графом, к которому прицеплены одна или две вершины, соединенные со всеми вершинами этого двудольного графа. Как-то странно, что у авторов не было такого теста О_о