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

Я рад приветствовать всех любителей программирования!

Сегодня состоится второй квалификационный раунд Яндекс.Алгоритм, и для вас его готовили Артем Рахов, Михаил Мирзаянов и я.

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

Напоминаю, лучшие 500 участников проходят в Яндекс.Алгоритм 2011 Раунд 1, который состоится 20 мая в 19.00

Удачи!

UPD: соревнование закончилось, я поздравляю tourist с победой!

Напоминаю, что это был квалификационный раунд, а это значит, что первые 500 участников в конкурсе выходят в следующий раунд! Мои поздравления!

Сегодня у нас целых два самых удачливых участника: Hossein_Hima и ss.nurboolean - они разделили 499-500 места с результатом в 978 балла. Желаем еще большей удачи :)

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

14 лет назад, # |
Rev. 4   Проголосовать: нравится -31 Проголосовать: не нравится

Зарегистрировавшихся больше чем на топкодере!
14 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Будем молиться о том, чтобы все прошло гладко с технической стороны. Как никак 2087+ зарегистрированых.
14 лет назад, # |
  Проголосовать: нравится -28 Проголосовать: не нравится
Ох... Чувствую сервачок-то уйдет в астрал от такой напряги. Слишком уж неудобным для большинства оказалось время первой квалификации...
14 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
Рекорд зарегистрировавшихся разбит в щепки.
14 лет назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится
Рейтинг считается с учетом внеконкурсных участников(это видимо те то прошли отбор в первой квале?)?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Думаю, сегодня у многих рейтинг очень сильно подскочит (зеленые + синие + фиолетовые).
  • 14 лет назад, # ^ |
      Проголосовать: нравится -23 Проголосовать: не нравится
    Надеюсь что да, иначе спать уйду:)
    • 14 лет назад, # ^ |
        Проголосовать: нравится +2 Проголосовать: не нравится
      Ты хочешь сказать, что пишешь ради рейтинга, а не для тренировки? Ожидал от тебя несколько другого....
      • 14 лет назад, # ^ |
          Проголосовать: нравится -28 Проголосовать: не нравится
        Я пишу интереса ради. А если нас нерейтинговых в отдельные комнаты затолкают будет не совсем интересно.
        • 14 лет назад, # ^ |
            Проголосовать: нравится +8 Проголосовать: не нравится
          таки, вероятно, затолкают. Но думаю комнаты будут даже слабже чем обычно ибо разделения по дивам не будет
  • 14 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится
    Конечно, ведь для нас рейтинг тоже пересчитывают. По крайней мере мне так в письме написали :)
  • 14 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится
    Да. 
    Потому возникает вопрос: в графике будет написано место с учётом этих людей?
  • 14 лет назад, # ^ |
      Проголосовать: нравится +7 Проголосовать: не нравится
    Да
14 лет назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится
Колян авторы не могут участвовать в своём контесте. Зачем ты зарегался (решил норм прокачаться :-))?
  • 14 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Record of registrants + 1 :)
  • 14 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    это своего рода фича системы.
    чтобы получить права админа для управления контестом надо зарегистрироваться на него.
    • 14 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится
      Вроде когда я был одним авторов такого не было
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        в части моих контестов так тоже не было, а потом стало так.
14 лет назад, # |
  Проголосовать: нравится +60 Проголосовать: не нравится
Может на всякий случай сделаете pdf версию задач.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +11 Проголосовать: не нравится
    На какой - всякий? Проблем со стартом контеста нет уже много раундов.
14 лет назад, # |
Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

Almost 2200 registrants :P Grats :) Hope the server will stand it :)
  • 4 года назад, # ^ |
      Проголосовать: нравится +11 Проголосовать: не нравится

    Lol! reading this comment in 2020, it feels funny, how much CF has grown even a DIV3 contest has more than 12000 official participants

14 лет назад, # |
  Проголосовать: нравится -6 Проголосовать: не нравится
Topcoder fail не ожидается - зарегистрировалось меньше, чем 2200 человек.
14 лет назад, # |
  Проголосовать: нравится +35 Проголосовать: не нравится
n=2 is awesome. :)
14 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится
Хех, 1657 участников. Определённо рекорд.
А в начале дня у меня были огромные сомнения насчет 2000 регистраций.
14 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится
If you already have qualified, you may take part as out of competition participant (informal). Anyway the contest will be rated for you.


Does this mean the contest is rated for the informal people?
14 лет назад, # |
  Проголосовать: нравится -9 Проголосовать: не нравится
о май гад. это ж надо догадаться до случая и не суметь его заифать. Ну вроде должен быть сегодня ап все равно
14 лет назад, # |
  Проголосовать: нравится +67 Проголосовать: не нравится
Прежде всего хотелось бы поблагодарить Михаила Расиховича Мирзаянова и всю команду codeforces за то, что сегодня ничего не упало. Пускай была ограничена функциональность, но при 2000+ зарегистрировавшихся это более чем позволительно. Спасибо!
  • 14 лет назад, # ^ |
      Проголосовать: нравится +70 Проголосовать: не нравится
    Да, обе ночи перед раундами я почти не спал. Не зря.
    • 14 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится
      Не смотря на это, в начале контеста, не сразу удалось открыть условия. В этот раз, например, задержка (у меня) была порядка 90 секунд. А пару раз, при попытке просмотреть код участников, возникали задержки в 10-15 секунд.

      Возможно, стоит сделать отдельный http для условий?
      • 14 лет назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится
        1. устроить p2p обмен условиями
        2. отравлять пир
        3. ....
        4. profit high rating
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Ничего понять не могу.. Первая задача не прошла сразу.. прошла только после того как дописал cout<<endl; cout.flush(); всегда без этого проходили задачи. Обидно блин. Во второй задаче тоже не понял какая-то подобная лажа была.. (помимо моего косяка) :(
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Этот косяк был общий:) Давно уже не было раундов с хитрыми случаями которых не было в претестах.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      На самом деле про этот случай во второй задаче я догадался сразу.. но что-то он у меня не правильно сработал :( В итоге всё-равно исправил, но чуть обидно. Но я говорю не о том, я о причудах с cout.flush();
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    а в чем именно заключается глюк с flush ?
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Я дико извиняюсь... Это мой тупняк.. я отсылал код не из той папки, а потом просто копированием. Блин :( Вопрос... при неправильном ответе на претест 1 начисляется -50?

14 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
На чем ломали B кроме n=2? Неужели столько человек допустили такой ляп?
  • 14 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Турист точно ломал на чем-то еще, так как одного чувака он ломанул дважды.
    • 14 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится
      возможно, n=2
      и размер группы сначала 2, потом побольше
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    на максимальном тесте)))

    200

    1 2

    1 3

    1 4

    ...

    199 200

  • 14 лет назад, # ^ |
      Проголосовать: нравится -8 Проголосовать: не нравится
    Ну я 10 кодов сламал на таком тесте :)
  • 14 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Можно было n = 2 разобрать правильно только для множества из двух элементов.

    А ещё можно было получить TL решением за n4.
    • 14 лет назад, # ^ |
        Проголосовать: нравится +4 Проголосовать: не нравится
      Оказывается, и с решением за куб можно было ТЛ получить.
      Слив.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    14 человек в моей комнате его допустили=)
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Если не трудно, можете посмотреть задачу А у пользователя oks, и прокомментировать, как она умудряется работать на 10^9  меньше чем за секунду? Неужели у кодфорсеса такие сервера, что 10^9 операций уже не проблемма? Или это какие-то хитрые оптимизации плюсового компилятора?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Я на этом -50 получил(((
    Ну на самом деле 10^9 инкрементов должен успевать
    • 14 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится
      А я минус 100=( случайно нажал F5, когда ждал результата хака=(
  • 14 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Не в ту ветку.
14 лет назад, # |
  Проголосовать: нравится +19 Проголосовать: не нравится
Разочаровали две вещи:
1). Участники "вне конкурса" и остальные в неравных условиях, так как в комнатах "вне конкурса" было гораздо меньше слабых участников и шанос для челленджа. И это сильно повлияло на таблицу результатов.
2). Задача Д. Обычная задача уровня С, к которой прикрутили сертификат, что ее усложнило чуть более, чем вдвое. Я понимаю, когда сертификаты нужны в неочевидных задачах, чтобы проверить, что у участников нету решения лучше авторского, но в данном случае это просто стало техническим усложнением.
Но сами по себе задачи (без привязки к сложности) были очень хороши, спасибо!
  • 14 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Сертификат == восстановление ответа? Или я чего-то не понимаю?
    • 14 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится
      Да. Хотя это даже скорее "восстановление ответа для сверки результата", мне кажется, это слово используют в таком значении.
      • 14 лет назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится
        Спасибо. Ни разу раньше не слышал такого названия.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Именно.
  • 14 лет назад, # ^ |
      Проголосовать: нравится -12 Проголосовать: не нравится
    Да, странная задача. Возможно у неё есть какое-нибудь красивое решение?
    • 14 лет назад, # ^ |
        Проголосовать: нравится +17 Проголосовать: не нравится
      имхо, решение так красивое
      приделать восстановление ответа можно за 5 минут вообще не напрягаясь
      • 14 лет назад, # ^ |
          Проголосовать: нравится -13 Проголосовать: не нравится
        Что такое "восстановление ответа" а то я так и не въехал в дискуссию.
        Можна, пожалуйста, объяснить
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          без "восстановления" - это просто вывести одно число - минимум.
          с "восстановлением" - вывести еще как этот минимум получить.
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Показ, как именно набрать ответ, который написан в первой строке
  • 14 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    Ну а Вы понимаете, что если бы в вашей комнате были те кто в конкурсе, то взломав их решение, Вы не дали бы это сделать кому-то другому который на конкурсной основе, и в итоге повлияли бы на положение в целом?
    • 14 лет назад, # ^ |
        Проголосовать: нравится +2 Проголосовать: не нравится
      Понимаю. И не спорю, что это было бы тоже неправильно.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    То, что восстановление ответа усложнило D в два раза - несогласен.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А как вообще реализовать тут динамику в задаче D?
    думал над одномерной динамикой, где F(N) - оптимум для префикса очереди длиной N , и двумерной, где F(L,R) - оптимум для подочереди с началом L и концом R.
    Но как вывести рекурентную формулу тут, не могу понять.

    Ведь если первые трое A B C  и мы пробуем взять A и C то у нас уже не будет интервала, который просчитан в динамике. у нас будет интервал + дырка + число В.

    Подскажите идею динамики пожалуйста
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Я писал динамику f(i,j), где i - номер начала непрерывного куска (те, которых мы еще не рассматривали), а j - номер невзятого человека из рассмотренных... получаем рассмотрев первых 3-х человек возможны переходы в f(4,1), f(4,2), f(4,3)
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Проще двумерная динамика F(L,R) - ответ для очереди где идет элемент L потом какой-то промежуток, а потом цельный отрезок от R и до конца. Ответ на вопрос задачи - F(0,1). Переходы выполняются за O(1).
    • 14 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Спасибо обоим.
      Чето не пришло самому в голову.
14 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Я не успел закодить, может кто пробовал? В D жадник прокатывал или ДП только?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Какой жадник там может прокатить? Думаю, что только ДП.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Я уже нашел тест, на котором мой жадник валится. Ну да, только ДП. 
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        А что если попробовать на каждом шаге сохранять 100 лучших, генерировать из них следующее поколение (300) и из него снова выбирать 100 лучших? Допускаю, что на это можно придумать антитест, но я почти уверен, что такое решение можно вкатить.
14 лет назад, # |
  Проголосовать: нравится +19 Проголосовать: не нравится
как же печально печально получить ва на 103(!) тесте =((
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
В С подразумевалось писать тупое моделирование или что-то посерьезнее? Я промоделировал, но до последнего сомневался, что пройдет. В итоге прошло все-таки.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ну, смотря какое тупое. Предполагалось, естественно, за квадрат.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      O(n^2*log(n)). Понятно, что не позднее чем через n шагов последний приедет. В каждой вершине - массив текущих дивизий. На каждом шаге перекинем всех, кого можем, вверх, и отсортируем дивизии во всех вершинах. Почему-то в этом решении я был не уверен. Показалось, что сортировка на каждом этапе убьет слишком много времени.
      • 14 лет назад, # ^ |
          Проголосовать: нравится +4 Проголосовать: не нравится
        не всякое n^2 log n зашло
      • 14 лет назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится
        я в каждой вершинке хранил сет. итого ТЛ 101 о О
        наверно надо было что нить побыстрее stl-овского сета написать =_=
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Точно такое же решение и тот же самый 101. 
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            аналогичная проблема, думаю надо было писать в ручную(кучу например) , тогда бы прошло
            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              STL'евской кучи вполне достаточно
            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              У людей прошла даже не ручная куча, а куча STL
              • 14 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                что значит "даже"?  почему вы считаете, что стлевская куча намного меленнее ручной?
                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Не считаю, что намного, но, если я не ошибаюсь, STL все-таки немного отстает.
              • 14 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                А можно ссылку на такой солюшен? Просто я видел минимум два решения где СТЛ-вская куча упала по ТЛ-у на 101 тесте.
                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Я их не видел(да и не искал). Верю на слово ниже отписавшимся.

                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  У меня в дорешивании прошла стл-вская куча. (не знаю как дать ссылку на условие - 440773)
        • 14 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

          Как я понял, с priority_queue зашло(надо проверить), с сетом у меня тоже не зашло


          UPD: тупая замена на priority_queue  у меня прошла
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Писал с priority_queue. OK
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            По идее логично, что priority_queue работает быстрее,  но лично я об это впервые споткнулся
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Проходила STL очередь с приоритетами. Еще проходили сортировки.А вообще можно квадрат чистый. 
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            У меня очереди с приоритетами упали на 101 тесте тоже.
            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Ну у меня неудачный взлом человека с очередями. может быть дурацкий тест, но ничего умнее бамбука я не придумал.
              • 14 лет назад, # ^ |
                  Проголосовать: нравится +8 Проголосовать: не нравится
                Звезда со столицей сбоку и пропускной способностью 1?
              • 14 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                На бамбуке, по идее, решение с очередями будет квадратичным - т.к. в любой очереде в любой момент будет находится не более чем 1 дивизия и соответственно логарифм на добавление превратится в константу.
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          В вершине храним вектор, на каждом шаге тупо его сортируем. AC.
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            А можно двигать в порядке возрастания приоритета и не надо сортировать :)
        • 14 лет назад, # ^ |
            Проголосовать: нравится -10 Проголосовать: не нравится
          У меня чистый квадрат без сэта...
          • 14 лет назад, # ^ |
              Проголосовать: нравится +4 Проголосовать: не нравится
            Да у многих - чистый квадрат, который, к тому же, гораздо проще написать. Я пока не придумал решения за квадрат не писал ничего.
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Сет и так очень быстр. Странно, у меня priority queue вошла.
        • 14 лет назад, # ^ |
            Проголосовать: нравится -13 Проголосовать: не нравится
          Именно этим мне этот раунд и не понравился - зачем выставлять таймлимиты и ограничения, на которых падает стл? На линейном графе из 5000 вершин с пропускными способностями 1 (наверное, самый жесткий тест) мое решение работает 3 сек., но заметил я это только за 3 мин. до конца. Главное, что до тестинга это невозможно просчитать - и я думал, что с высокой вероятностью зайдет. В общем, вот за это авторам дисреспект.
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Я тоже на этом тесте затестировал, понял что STL - меееедленнный и переписал своими структурами на массивах.
            Но все равно на тесте из одной ветки дерева длинной 5000 вершин на 2.00Ггц работает 3 сек, а на КФ макс 640мс.

            Наоборот, хорошие ТЛ, учат оптимизить решения.
            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Мне кажется, что авторы хотели сделать такие ограничения, чтобы за квадрат заходило, а за логарифм нет, и они были близки к цели...

              Но в принципе, и помимо сетов существовали существенные оптимизации, напр. писать на статике,
              не писать рекурсию, а  бфс сделать один раз, а не на каждом шаге и т.д.
          • 14 лет назад, # ^ |
              Проголосовать: нравится -7 Проголосовать: не нравится
            Я писал это решение уже под конец, не придумав решения за квадрат. Предположил, что за квадрат нельзя, а если везде держать сеты, то на самом деле квадрат и выйдет с маленькой константой (не придумал тест, который это обломает, но и не доказал). Т.е. я особо не удивлен, что мое решение упало. Я больше удивлен тем, что его можно запихать немного прооптимайзив. Именно этим мне эта задача тоже не нравится.
          • 14 лет назад, # ^ |
              Проголосовать: нравится +3 Проголосовать: не нравится
            > Именно этим мне этот раунд и не понравился - зачем выставлять таймлимиты и ограничения, на которых падает стл? 

            Затем, чтобы писали квадрат. Подразумевается, что либо ты пишешь решение за квадрат, и спокоен за него, либо тратишь эн десятков минут на оптимизацию решения за n^2*log n, которое ещё и не факт, что зайдёт.

            > Главное, что до тестинга это невозможно просчитать - и я думал, что с высокой вероятностью зайдет.
            Невозможно просчитать, что 5000*5000*log(5000) ~ 3.07193*10^8 медленных, используюших сет операций скорее всего не влезут в TL? Если Вы не знаете, какова производительность структур данных STL, то это же Ваши проблемы, а не "авторам дисреспект".

            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Я писал на яве и не был спокоен за квадратное решение. Потратил наверное с полчаса чтобы найти еще более быстрое. В итоге не нашел и написал квадрат. Для меня плохо то, что потом на D мне не хватило буквально одной минуты, так что эта C мне не понравилась :)
      • 14 лет назад, # ^ |
          Проголосовать: нравится -10 Проголосовать: не нравится
        sortirovrka sliyanuem(poezdov ) tut sovsem malo trebuet vremeni .
    • 14 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится
      а как за квадрат?
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Отсортировать по приоритету, и хранить то, сколько дивизий толпяться в И-той вершине в Джи-тый день. Тогда для текущей дивизии как только количество дивизий в текущий день меньше пропускной способности, наша дивизия увеличивает это количество на 1 и переходит в предка.
        • 14 лет назад, # ^ |
            Проголосовать: нравится +5 Проголосовать: не нравится
          понял, спасибо))
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Можно просто для каждой вершины хранить в какой вершине ее дивизия находится сейчас. Перед этим дфс нам нашел всех предков и все стоимости переходов.
      • 14 лет назад, # ^ |
          Проголосовать: нравится +8 Проголосовать: не нравится
        Сортируем по приоритету, для каждой вершины знаем предка, для каждой дивизии храним текущее местоположение.
        Теперь в каждый день рассматриваем дивизии в порядке возрастания приоритета и, если ребро в предка еще не переполнено, переводим эту дивизию в предка, считая сколько раз ребро уже использовалось.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    я минут 20 не верил что можно моделировать. Искал решение другое. Потом плюнул, решил моделировать с приоритетными очередями, но в итоге не успел
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    TL на 101 тесте... Все-таки не самое тупое моделирование. Пару минут не хватило, чтоб оптимизировать =/
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Можно было моделировать по-умнее без сетов за O(n^2). К сожалению, я сделал с сетами и получил TL 101 как и у многих
14 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
For mathematical reasons, for problem C I would like to know what is the maximum number of days, if the weight of each edge is one. I think this number cannot become to large, but I would like to have some upper limit.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +11 Проголосовать: не нравится
    limit = n because every daysomebody arrive to capital
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      It's not so obvious! Somebody can linger in some verteces
      • 14 лет назад, # ^ |
          Проголосовать: нравится -13 Проголосовать: не нравится
        В каждую вершину, у которой хотя бы k, потомков пришло не менее k составов.
        База для k=0 очевидно.
        Пусть пришли еще не все потомки, тогда из какого-то поддерева пришли не все потомки, тогда в вершину поддереве там пришло не меньше (k-1) за k-1 ход+1 была. Значит там что-то есть=> Оттуда что-то приедет.

        Sorry, can't translate it
    • 14 лет назад, # ^ |
        Проголосовать: нравится +8 Проголосовать: не нравится
      Ah yes, that's a very critical observation. I cannot deduce that during the competition :D
  • 14 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    Isn't it n-1? 
  • 14 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +6 Проголосовать: не нравится

    Edit: sorry, this is wrong.

    Let d be the maximum distance from the capital to a people. Let x be the number of people whose distance from the capital is d. "x + d" is initially at most n, and each day this value always decreases.
14 лет назад, # |
  Проголосовать: нравится -12 Проголосовать: не нравится
Немного неприятно удивило то, что по условию В "Для того, чтобы играть было еще интереснее, Вася выбрал n таких непустых множеств, что никакие два из них не имеют общих элементов.", но при этом не сказано, что элементы в каждом множестве различны. Между тем, чекер не воспринимал такие тесты, так как "DUBLICATED NUMBERS". Много хаков ушло=)
  • 14 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Такого не может быть по определению множества - определенное число там либо есть либо нет, не может быть такого чтобы множество содержало два одинаковых числа.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Tragedy. I wasted my first 60 mins.
14 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
Спасибо, автору за задачу В :)) Думаю это пошло мне на пользу.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Сто первый с PriorityQueue.
14 лет назад, # |
  Проголосовать: нравится +16 Проголосовать: не нравится
My java solution in problem C TLEd and an identical C++ solution passed, this is really annoying :S
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
а в CF уже добавлена фича включения взломов в систесты?
  • 14 лет назад, # ^ |
      Проголосовать: нравится +11 Проголосовать: не нравится
    ручками часть тестов добавляется
    (с) Ripatti
  • 14 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Да, добавлена, проверено на своей шкуре))
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Эм. что-то я не догоняю, как это можно испытать на себе?
      • 14 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

        блин, я наверное не так понял, в ПРЕтесты взломы точно включаются....))ну а в систесты не знаю
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          да, в претесты добавляются взломы (конкретному человеку, которого взломали)
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
How can I know whether I have qualified?
14 лет назад, # |
  Проголосовать: нравится +91 Проголосовать: не нравится
Задержка с пересчетом рейтинга связанна с восстановлением функциональности? Кстати когда он будет пересчитан?
  • 14 лет назад, # ^ |
      Проголосовать: нравится +17 Проголосовать: не нравится
    Не поймите меня не правильно, но мне не понятно, почему человеку ставят за такой коммент +50, а другому за контест +103...
    • 14 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +9 Проголосовать: не нравится

      Возможно, вместо того, чтобы писать "Я тоже хочу знать когда будет пересчитан рейтинг" просто ставят плюс в знак солидарности.
      А плюсы за контест, особенно за хороший - это уже традиция.
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Я к тому что мне кажется полезность этого комментария минимум в 10 раз меньше, чем полезность контеста. 
        • 14 лет назад, # ^ |
            Проголосовать: нравится +10 Проголосовать: не нравится

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

          Во фраза-то получилась :D

        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Человек задал вопрос, терзающий очень многих в данный момент. Поэтому столько плюсов.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Возможно что голосование за темы дает +1, в то время как у комментариев +2, ну и плюс то что уже сказал Jokser
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Рейтинг только что пересчитали.
    И еще, куда делись графики рейтинга в профилях (или я один их не вижу)?
    • 14 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится
      Они убираются как часть утяжеляющей функциональности(также как архив) на время раундов Яндекса
    • 14 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится
      Читаем внимательно:

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

      Скоро все будет на месте :)

14 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Кто-нибудь знает линию в C? Можете рассказать?
  • 14 лет назад, # ^ |
      Проголосовать: нравится -11 Проголосовать: не нравится
    Ну я делал так:
    Отсортил всех в порядке приоритета. Для каждой вершины в каждый момент времени поставил сколько свободных мест есть, так-же запомнил куда нужно ходить из вершины. Иду в отсортированном порядке, и каждый раз пытаюсь сделать переход, очевидно что мы либо ходим далее, либо ждем, при переходе уменьшаем число в массиве. Так как ответ не превосходит Н, то решение будет в худшем случае О(Н*Н).
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    или хотя бы за N*log(N). я слабо себе представляю, как её можно без сортировки решать.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
У меня вышла веселая ситуация с B. Написал решение, где не учел случай с n=2. Послал, получил WA#4. Сразу почему-то подумал, что там как раз n=2. Но каким-то чудом моя программа проходила тест с n=2 правильно! Долго втыкал, потом нашел багу. Оказывается, что при вводе я указал не n*(n-1)/2, а n*(n-1) чисел. Сдал в итоге с +1, зато не потерял времени на то, когда тебя взломают.
До сих пор теряюсь в догадках, как считывание несуществующих чисел помогло пройти тест с n=2.
  • 14 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

    Похожая история, только я в одном месте перепутал n * (n - 1) / 2  и n.
    В итоге +14 хаков. Очень рад этой своей баге=)
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Возможно потому, что считывание несуществующих чисел даёт последнее считанное число, и там было что то вроде
    2
    2 1 2 [2 2 2]
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Скорее всего так. Тогда решение работает. Однако этот факт отпечатал в моем сознании, что случай с n=2 включили в претесты, и я даже не пытался никого ломать.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
в "А" один и тот же тест два раза загнали
14 лет назад, # |
  Проголосовать: нравится +23 Проголосовать: не нравится
when will be the ratings updated?
14 лет назад, # |
  Проголосовать: нравится +36 Проголосовать: не нравится
When will the rating be updated? 
I won't go to sleep until my rating changes ...
It's 3 in the morning in CHINA +_+...
14 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
а будет ли разбор квалификационных раундов?
14 лет назад, # |
  Проголосовать: нравится -6 Проголосовать: не нравится
Мне уже можно книгу писать: "самые тупые ошибки, допущенные при решении задач". Как можно было поделить 200000 на 30 и получить <100? В итоге wa17 из-за того, что массив слишком маленький. *WALL*
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    напиши лучше книгу как НЕ делать самых тупых ошибок.
    я с удовольствием прочту
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Это еще ничего. А вот когда мы на ВКОШПе 50 на 50 умножить не смогли ...
    • 14 лет назад, # ^ |
        Проголосовать: нравится -7 Проголосовать: не нравится
      Получили 250? :)
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        да. Округлили вверх, получили 300, получили RE за 5 минут до конца и так и не сдали задачу.
        • 14 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

          Мы на 1 курсе после трёх часов дискретки с перемножениями матриц получали что-то типа:
          1*1=2
          0*1=1
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Content of the article contains small typo in link to the time 
(...?day=6&...) but should be 
(...?day=20&...)
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
How Solve Problem B ?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Find any set by intersection 1st union with others.
    After that check all unions that intersect this set & write out union wthout this set

    Don't forger to if n=2
  • 14 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится
    Let's a[i][j] := amount of strings(in input) where i and j are exists.
    In case n > 2 a[i][j] = n-1 if and only if i and j were from one set. Find a for all 1 <= i, j <= 200, and you can find answer easy!
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    for each number from 1 to 200 calc FIRST and SECOND
    FIRST - input line in which was first occurence of this number
    SECOND - input line in which second occurence of this number

    two number belong to one answer where they have equal FIRST,SECOND pair
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    simple :)

    1. u have not used points  used[1..200] all set to 0//not used 

    2. read n - amount of sets,set must out sets o=n;

    3 while readind n*(n-1)/2 pairs of sets do this:{ line number is j

    set setA=empty; setB= empty;

      read k-amount of points 

       for all k points p in this line j do {

        if used[p]<0 continue;

        if   used[p] ==0 {is notused mark used[p]=j//it means that number p  fist time in j line}

        else if used [p]>0 {it means that in j line we get set   

          with  p points in 2nd time so we can solve what set has p point 

         if (A.empty||used[A.top]==used[p])A.push(p)   else B.push(p)

    }//end for k points in j line

    if(not empty A){out(A);mark all p in A used[p]*=-1;o--} 

    if(not empty B){out(B);mark all p in B used[p]*=-1;o--}

    }//end for j lines of n*(n-1)/2 lines of pairs sets

    test if (o>0){//o==2

    cose we have last readed line like k a1 a2 .... ak

    we make hand made out like

    line1: 2

    line2: 1 a1

    line3: k-1 a2 ... ak

    }

    thats all 

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

      loose time cose this solution solv not only problem B but problems where not all pairs n*(n-1)/2, but that where each sets no less 2 times so this can solv:

      4

      4 1 11  2 22

      4 1 11  3 33

      4 2 22 4 44

      4 4 44  5 55

      4 5 55  6 66

      4 6 66 3 33

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

    It's al MUCH MUCH simpler.

    Read the first of n*(n-1)/2 union. Remember the first element of it - F.

    Then read all other unions and save only containing this F.

    We will get n-1 unions U1, ..., Un.

    Then intersect U1 and U2, we will get A0, that contains F.

    After that subtracting A0 from every Ui, we will get Ai.

    And A0, ..., An-1 are the answers. :)

    If I'm not mistaking, it could be realized with complexity O(n*m) where m is the number of different elements, so about const*200*200 solution.

    And don't forget about 2.
    • 14 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится
      I don't think that your solution is simple. It's better to build a graph with M verticies (up to 200 verticies). Where each vertex is assigned an unique value of Ai.
      For any edge (u, v) of such graph we should count its weight as the number of times the values u and v appeared in one union. If this number is smaller than N - 1 we should ignore this edge in our further solution. And than it's very simple to find all the connected components. Solution requires O(M2) time and O(M2) memory.
      Of course, we should carefully deal with N = 2 again.
14 лет назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

Вот и завершилась квалификация... и у меня возник вопрос по задаче D.

Может я конечно не правильно понял условия, но 7 тест у меня вызвал сомнения:

7
100 1 2 3 4 3 2
Вывод
106
3 7
4 6
5 1
2
Ответ
107
2 3
1 5
4 6
7

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

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

    мы не сможем сразу запустить третьего и седьмого, т.к нужно кого-то из первых трёх
14 лет назад, # |
Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

"они разделили 499-501 места с результатом в 1192 балла"
это же места с учетом участников вне конкурса, их же вроде не нужно считать, или я не правильно понял идею участия вне конкурса?

  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Да, да. На самом деле проходной балл 978 и разделии его Hossein_Hima и ss.nurboolean на 499 местах.

    P.S.: Да, я снова капитан и могу капитанить дальше)
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Каждый после раунда посмотрел из интереса, сколько же надо было баллов чтобы пройти. Конечно же, я запомнил примерно чему было равно это количество баллов. Не трудно было заметить этот fail в посте, меня это повеселило. Но еще больше меня удивило то, что там указаны цвета на момент начала раунда. У двух участников из трех они изменились после раунда (кстати и оставшийся буквально ногтями зацепился за оранжевую зону).
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Спасибо за поправку. fixed.
14 лет назад, # |
Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

возвращаюсь к комменту diogen'a (http://codeforces.net/blog/entry/1886#comment-36385)

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

исправил, пересабмитил,  полное решение

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

(задача C имеется в виду)

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

You count also out of competition participants. There is exactly 500 advancers from this round and the border is 978 points.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Can anyone explain how to solve E ?
  • 14 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

    First, sum the areas of the shadows from all windows, and then subtract the areas counted twice.
    For the first part, note that you may count each window (and both lightbulbs) separately, and each window gives a trapezoid shadow.
    For the second part, you will each time only need to intersect two such trapezoids -- one from the upper bulb and one from the lower. It may look even easier if noticed that you may intersect triangles, not trapezoids.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
I noticed n=2 when I read the B again, and then I almost Hack all others in my room.
However, the origin set in B could be 19900, and I announced 200....
14 лет назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится
I thought that problem D was really pretty, how did you guys do? I did a O(n^2) memoization dp[i][j], where 'i' and 'j' were the first two guys at the queue, because if you notice, the third guy's index will always be j+1, and realizing that can give you a simple memo coding.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Will be a posibility to compete out-of-competition, for those who are not qualified?
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
спасибо за интересные задачи. первая улыбнула
14 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
да туповат я, что есть - то есть... а задача правда была забавная...
и похоже Вы, Павел, становитесь моим фанатом, раз мониторите мои участия в турнирах
  • 14 лет назад, # ^ |
      Проголосовать: нравится -18 Проголосовать: не нравится
    Конечно, как раз хочу получить Вашу фотографию, чтобы напечатать ее у себя на футболке. На самом деле я просто нажал на профиль и посмотрел место, которые Вы заняли (там на точку на графике можно навести). Там больше 1300 число было. Ежу понятно, что второй задачей тут и не пахнет :)
    • 14 лет назад, # ^ |
        Проголосовать: нравится +4 Проголосовать: не нравится
      Павел, мне кажется, что вы слегка надменны... относитесь к жизни проще и люди к Вам потянутся)
      • 14 лет назад, # ^ |
        Rev. 3   Проголосовать: нравится +3 Проголосовать: не нравится

        Вот в том самом моём эпичном треде, в котором никому не рекомендуется писать 341-й коммент (сообщество загрызёт), Павел сказал, что согласен со мной на 200%. Я ещё тогда удивился, к чему такое преувеличение, ну написал бы, что на 100%. А потом понял, что нет, он-таки именно на двести :)
  • 14 лет назад, # ^ |
      Проголосовать: нравится -10 Проголосовать: не нравится
    Думаю, Павел хотел сказать: "Даже моя девушка решила больше")))
    • 14 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится
      ну я думаю, что Павел если захочет сказать то он скажет сам.

      и еще мне почему-то кажется, что если кто-то ниже Вас в рейтинге, то не стоит акцентировать на этом внимание в каждом комментарии... я просто написал, что мне нравится задача (если быть точным описание к ней) и не пытался ввязываться не в какие дискуссии...
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ну я решил тебя подколоть не потому, что ты ниже в рейтинге. Иначе я бы просто опух тут всех подкалывать, кто хотя бы цветом хуже. Мне просто твое сообщение напомнило что-то вроде "thanks to admins!!!111 server is so cool!!1 respect!!1!1" (специально ни одной заглавной буквы не поставил). Ну как-то решил понять причину такого запоздалого восхищения.
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          да тут про... Ой простите, пишу с заглавной... Да тут просто два человека рядом сидят и активно пишут здесь на форумах... Решил тоже что-нибудь написать. Задача правда была интересной. Вот и прокомментировал.

          З.Ы. Не в обиду, но не будь столь высокомерным. Фраза "Иначе я бы просто опух тут всех подкалывать, кто хотя бы цветом хуже." не красит тебя