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

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

Всем здравствуйте)

Рады приветствовать вас на очередном раунде Codeforces #117 для участников Div. 2. Традиционно, остальные могут поучаствовать в нем вне конкурса.

Задачи для вас были подготовлены группой авторов в составе: Павел Холкин (HolkinPV), Иван Фефер (Fefer_Ivan), Николай Кузнецов (NALP) и Геральд Агапов (Gerald). Мы благодарим Михаила Мирзаянова (MikeMirzayanov) за систему Codeforces и Марию Белову (Delinur) за перевод условий.

Распределение баллов вновь будет динамическим) Подробнее об этом можно найти здесь.

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

Некоторые участники Див. 1 зарегистрировались на соревнование раньше, чем была произведена настройка регистрации. До начала раунда это будет исправлено, и они будут участвовать вне конкурса.

Надеемся раунд пройдет успешно и всем понравится. Желаем удачи и высокого рейтинга!

UPD: условие задачи 182E - Деревянный забор было сформулировано неверно, что привело к несоответствию решений, правильный вариант условия появится совсем скоро, приносим участникам свои извинения.

UPD2: контест объявлен нерейтинговым.

UPD3: разбор задач можно найти здесь

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

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

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

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

And are there dynamic problem max scores used?

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

Задачи по сложности расположены будут?

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

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

    UPD. Окей, виноват=(

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

      Сообщение было написано до объявления.

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

На этот контест уже 161 аккаунт с рейтингом "0" зарегистрирован =)

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

502 Bad Gateway...Please allow me to enter

UPD:Oops...Did not realize that we have been given 10 more minutes to get ready :)

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

Классно. Не успел зарегистрироваться, расстроился, а оно возьми и упади вместо начала. +5 минут для регистрации и довольный я.

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

Problem A will be the easiest one as the first dynamic contest ?

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

07:00 PM (Moscow Time), is the ideal time for a programming contest, please to keep this schedule for the future competitions.

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

В задаче C нету ошибки в выходных данных в третьем примере?

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

    Нет. Там 4 надо на -1 умножить, сумма получится -11.Это и есть возможный максимум по модулю.

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

    В следующий раз при возникновении вопросов используй кнопку "задать вопрос" на странице с задачами. Если действительно где-то ошибка, авторы контеста заметят ее и все исправят. Иначе ты получишь заслуженный "No comments" и будешь уверен, что все в порядке.

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

Почему все время выдает ошибку "Невозможно обработать взлом, попробуйте еще раз" ?

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

В претестах к задаче Е и самом авторском решении ошибка. Читаем условие. "Два забора будем считать одинаковыми, если соответствующие последовательности типов древесины досок заборов совпадают, в противном случае заборы различны" То есть, например, на тест 2 3 1 2 1 2 правильный ответ — 2. Действительно, если нас интересуют именно типы древесины, то очевидно что два типа переставить можно никак не больше, чем 2 способами. Однако, если не заметить этот нюанс, то несложно написать решение, которое ответит 4. Но 4 — ответ на другую задачу, на задачу, где было бы указано "Два забора будем считать одинаковыми, если соответствующие последовательности досок заборов совпадают по всем трем параметрам (длина, ширина, древесина), в противном случае заборы различны". И авторское решение также отвечает 4. Также можно посмотреть на 3-й претест из условия. Динамика, не учитывающая этого нюанса отвечает 20, правильное же решение — 16.

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

    А откуда информация, что авторское решение отвечает 4? Из неудачного взлома?

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

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

      Отправлял. Не ответили. А про контест — я, после того, как это обнаружил, как-то забыл, что он был перенесен на 10 минут.

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

    может лучше написать вопрос авторам а не сюда?

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

      писал.

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

        Мы не можем давать ответы на такие вопросы. Это дало бы вам дополнительный пример входных-выходных данных.

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

          Ну тогда поясните хоть сейчас что имелось ввиду?

        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
          Два забора будем считать одинаковыми, если соответствующие последовательности типов древесины досок заборов совпадают, в противном случае заборы различны.
          

          Тогда поясните, ошибка в условии или в решении?

          И вопрос вдогонку: как решать Е с текущим условием?

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

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

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

              Я написал два решения. Одно — неправильное — проходит претесты, про полные тесты пока неизвестно. Правильное не проходит 3-й претест, потому что у авторов ответ 20, а правильный — 16.

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

            Ну, я вообще не так понял и решал другую задачу; но я так подумал, что можно посчитать обычные способы и потом отнять повторяющиеся по этому условию. Такими могут быть только те, которые составлены из блоков одинакового размера. А там получается что=то вроде x·(n - 1)!·n способов, если можем поставить x одинаковых, а типов таких досок — n.

            UPD: Упс, неправда; на самом деле n·(n - 1)x - 1.

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

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

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

    Да я полностью с вами солидарен, сам просидел над этим кучу времени. Но наверное под типом подразумевалось с учетом поворота, то есть если ты визуально можешь их отличить.

    p.s. А вообще условие очень муторное, особенно если стараться понять легенду)))

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

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

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

    Меня такое определение тоже сконфузило...

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

Unable to ask questions. Getting "Field should not contain more than 1,000 characters" when the question is much shorter than that.

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

На чем валили D?

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

    На много чем. Люди забывали, что делители не только должны быть одинаковой длины, но и совпадать (aa, bb), что делится надо нацело (aba, aba), ну и еще какие-то мелочи

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

Понравился ли вам этот контест???

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

    Я в очередной раз убедился, что условия надо читать внимательно)

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

    Не особо) Но это потому что я тупой )

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

    Нет

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

    Да:) Задачи были классными.

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

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

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

    Задачи хорошие, а вот условия в некоторых задачах сформулированы не очень понятно.

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

Почему ответ на тесте 3 5 2 3 2 3 2 3 - 12 а не 6

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

    ведь первую доску мы выбираем тремя способами а вторую двумя

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

      Потому, что авторы не смогли правильно сформулировать, что они хотели

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

Ох и плохо будет мне, если упадёт А.... ;)

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

Ну что ж.. Расскажите мне, пожалуйста, кто-нибудь, как пишется динамика в Е, а то я так и не придумал :(

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

    У меня f[i][j][k] — i — последний вид древесины, j — текущая длина забора, k — текущая ширина. Персчет, думаю, очевиден.

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

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

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

        f[i][j][b[i]] сумма всех f[t][j — a[i]][a[i]], где 0 < t <= n, t != i; Для улучшения асимптотики храним se[i][j][k] — сумму всех f[t][j][k], где 0 < t <= n, t != i. Затем меняем местами a[i] и b[i] и повторяем данную операцию.

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

          Эх, ясно, спасибо. Совсем в другом русле мыслил, когда я уже с ДП подружусь(

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

    Я писал так — d(i, j, k) — колличество способов сделать забор длины i так, чтобы последняя доска была типа j, причём k = 0, если она не перевёрнута. O(l * n^2).

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

      А пересчет как?

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

        Перебираем длины заборов, для каждой фиксированой длины попробуем закончить забор такой длины доской каждого типа. Для фиксированого типа доски мы отберем все типы досок, которые могут предварять этот тип, и увеличим ответ. Кроме того, нужно аккуратно обрабатывать доски, в которых ширина равна длине, можно всегда считать, что d[i][j][1] = 0.

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

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

Может кто-нибудь подсказать, что за коварный 15 претест на С? так и не преодолел его (

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

Условия непонятное. Не хрена не понял.

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

Unsuccessful challenge on problem E:

Input: 2 4

1 3

1 3

Output: 4

Answer: 4

How the answer is 4? It should be 2.

1) #1, rev#2

2) #2, rev#1

I asked a lot of questions during contest and got answers that for example (#1, rev#2) and (rev#1, #2) are same variants. In that case the answer should be 2 for the case above.

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

    I think answer is 4,not 2. You get 2 combinations putting type 1 first, and 2 putting type 2 first.

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

      According to the problem description 2 out of those 4 variants are the same.

      P.S. I even asked a question to jury by specifying exactly such 4 variants, and got a response that 2 of them are duplicate.

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

    i think that they assumed that a rotation is considered as new type

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

In problem E.
What is the answer for the input (2 3 1 2 1 2) ?
There are 4 sequence of fences.
seq0 : fence[0] -> turn(fence[1]).
seq1 : turn(fence[0]) -> fence[1].
seq2 : fence[1] -> turn(fence[0]).
seq3 : turn(fence[1]) -> fence[0].
But seq0 and seq1 are same, And seq2 and seq3 are same too.
So I think it is 2.
But if so, the answer for sample3 is 18 not 20.

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

    Same issue for me :) Spent 1 hour on discussions with jury

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

    I'm surprising when my not-finished solution passed examples(as well as the pre-tests). That is the same question. The admin's reply is just:

    "I can only say, that rotation of the board does NOT change its type. So sequences with same boards but with different rotations are same."

    So I don't know what is wrong: the standard solution, the statement or my understanding?

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

Второй раз подряд пишу почти правильное решение и нахожу недочет за 5 минут до конца контеста :(. На этот раз так получилось с С.

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

    Вижу у тебя тоже 15 претест валился... Так в чем недочет был?) Уж больно интересно, все мои тесты проходит, а на 15-ом валиться...

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

      мне помог тест:

      6 3
      1 1 1 -2 10 -9
      1
      

      исправить — исправил, а засабмитить не успел =(

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

      Недочет такой: мы поменяли k элементов на отрезке [i; i + len — 1] и нашли сумму. Теперь мы переходим к отрезку [i + 1; i + len], и нам выгодно вернуть оригинальный знак какого-то элемента и поменять знак у элемента на позиции i + len.

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

        ага, а кто-то просто индекс в одном месте забыл инкрементить

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

Problem C: Many people have wrong answer with pretest #15 (include me). Good pretest :D

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

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

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

Как в первом семпле в задаче А получается 19? Ведь есть же путь A -> 1 -> 2 -> 3 -> B длины 1 + 4 + 1 + 4 + 2 + 4 + 1 == 17

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

    Из А за 1 секунду добегает, проходит ещё 1 секунда, затем 4 секунды луч работает и т.д.

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

[upd: sorry for asking the same questions other people already did. I typed the question at the same time.]

I have a question about problem E. Consider this test case: 2 3 1 2 1 2 Considering that "Two fences shall be considered the same if the corresponding sequences of fence boards' types are the same", I think the answer should be 2 — a fence with board types A and B ((1,2),(2,1)) and another with types B and A (also ((1,2),(2,1))), where A and B are the two given types of fences. ((2,1),(1,2)) would be equal to one of these solutions, since only the type (and not the rotations) are considered during comparation.

However, according to an unsucefull hack attempt, the answer is 4. I asked it during the contest, and they said that a fence with types (A,B,A) and (B,A,B) is also valid, but I can't figure out how it's possible with fence lenght 3... Can somebody? Thanks!

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

    If we called the first block A (1,3) and the second block B (1,3) The 4 valid fences are : (A , rev_B) , (B , rev_A) , (rev_A , B) , (rev_B , A)

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

      (B rev_B) and (rev_B B) are not allowed:

      there are no two successive boards of the same type
      

      Update: the upper comment has been changed. See reiracofage's comment below.

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

      But "A, rev_B" is equal to "rev_A, B" according the statment...

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

Почему мой говнокод вечно проходит претесты :(

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

I took a look at the last example case and "deduced" that rotation also matters in the sequence comparison... I was getting WA locally for a long time, because that was not so clear from the problem statement, but I finally got it when there were about 10-15 minutes left; otherwise, I could have gotten C I think, using BIT :(

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

I took a look at the last example case and “deduced” that rotation also matters in the sequence comparison… I was getting WA locally for a long time, because that was not so clear from the problem statement, but I finally got it when there were about 10-15 minutes left; otherwise, I could have gotten C I think, using BIT :(

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

Does anybody know the solution to the Problem C? I try to use the Red Black Tree, but my answer is wrong..

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

Авторского разбора контеста ждать?

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

on a separate note, why isn't the system test starting?? [NOTE: I said this at the time when the blog did not contain the update; don't get this wrong :)]

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

    There is a mistake in author's solution for problem E. Now authors are trying to fix it.

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

      would that mean the problem would get invalidated? the last example case would not be reconcilable... if the statement is wrong/example case is wrong, IT SHOULD HAVE BEEN ANNOUNCED during the contest. I took it as a case where the statement is wrong AND the example case is right...

      I think trying to fix the solution retroactively won't really work.

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

      I think there is no mistake, just a problem is missing something like: Two fences shall be considered the same if the corresponding sequences of fence boards' types and dimensions are the same.

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

        Too much thinking :) Your version and the initial one are different problems. Let's just wait the officials. Don't overthink.

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

        I think missing something is also a mistake. I spend some time thinking and coding another method, and found I get WA on sample 3.

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

          yea, I had to change my solution assuming something not stated within the problem statement, so as to fit the example test case (I thought something was missing in the statement but moved on, being under a time pressure) ;P

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

          I didn't have any idea to count different types of board sequence. Can you share your code ?

          you should get 18, on third sample.

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

            Got the same answer. I wrote recursive DP with some hashes, comparing them at the end of recursion.

            UPD: My Code here:

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

            Usual dynamic programming, but as it will count duplicate cases also (like the ones on which author solutions are wrong) there is a way to count the number of these duplicate sequences separately and then subtract from original answer. To calculate duplicate cases, you need to consider the quantities of equal boards with different types, for example if there are K boards with the same size A x B and if required length is divisible by (A + B), then there are K * (K-1) * (K-1) * ... * (K-1) duplicates ((K-1) is repeated (length / (A+B)) * 2 — 1 times).

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

              I`m not sure your solution be correct. there is a lot of possible paths (to build a fence), that have same sequence types with different width and length. I meant your solution doesn't count all paths.

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

              I have a close idea with yours during the contest. But I think the subtract method you mention works only for A[i]!=B[i]. If A[i]==B[i], you should have a different subtract method or deal with it when dynamic programming.

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

                I have excluded A[i] == B[i] during dynamic programming, you can just check if A[i] == B[i] then don't consider the variant when the board is rotated.

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

        There is a bug in authors solution to problem E...Read the blog again...Its updated...I think this round is going to be unrated :(

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

          I respect your opinion but I think that should be rated for div 2 because several people made a big effort to solve other exercises, including me. Thanks.

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

а как решалось D?

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

    Думаю, что префикс-функцией.

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

      а можно поподробнее?

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

        Она решалась чем-угодно. Нам подойдет даже обычный перебор, ведь нас интересуют числа, которые являются делителями обоих длин. Максимальное число делителей числа в диапазоне 1..100000 — 128. То есть 128 раз будем втупую проверять.

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

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

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

      я тоже так подумал, пока её не сдало далеко больше 100 человек :)

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

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

    В лоб. У нас порядка log(N) делителей длины. Проверка "s[:i] — делитель s?" делается за O(N). Итого O(N logN)

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

Контест то что надо, правда без авторских ошибок было бы на много лучше !!!

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

    Ошибки в условии после контеста это то что надо ? мда..

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

      Да, но в целом всё было нормально , и давайте простим авторам эту редкую ошибку.

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

        скорее за то, что автор накосил с решением, а не условием

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

Как-то долго систесты не начинаются...

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

Как можно решить задачу 182B - Календарь Васи?

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

    for (int i=1;i<=n-1;i++){cin>>x;ans+=d-x;}

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

    молча, не?

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

    Как ее можно не решить?

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

      Спроси у последних 60 человек

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

      Черт, да здесь полно людей, которые могли бы на полном серьезе написать: "Как тут можно все 5 за час не решить?оО" Не знаешь, почему они так не делают?

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

        может потому что они написали все за час и ушли, не?

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

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

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

            С учетом того, что автор вопроса сдал совершенно адекватное решение B на 20й минуте, я рассматривал вопрос как шутку на тему вопросов "как решать".

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

Как мы можем решить 182D - Общие делители?

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

    я писал изврат с кмп, но можно гораздо проще влоб ищем общие делители длин этих строк и за линию проверяем требуемое условие

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    while (!haveSolution) {
        head.turnOn();
        if (head.think() == SOLUTION) {
            haveSolution = true;
        }
    }
    fingers.codeSolution();
    soul.enjoy();
    
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

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

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

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

      М-да, я в этой задаче тоже залажал, ибо не сразу понял, что соль в делителях чисел, и делал перебор, но, благодяря тому, что сравнения строк делал с помощью хэшей, асимптотика получилась вполне сносная)

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

      Прошла!))

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

UPD: к сожалению обнаружена ошибка в авторском решении по задаче 182E — Деревянный забор, ситуация будет исправлена как можно скорее, приносим участникам свои извинения

Значит ли это что вы собираетесь исправить авторское решение и тесты после контеста, то есть после того как участники приложили двойные усилия и постарались понять что вы имели ввиду, а не то что было написано?

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

    Да-да, пожалуй, лучше считать, что бага не в решении, а в условии.

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

Бага в текущем положении. Моя задача D сейчас показана как упавшая, хотя до ее тестирования еще далеко. (она у меня была поломана и отправлена ближе к концу контеста).

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

system testing is in progress... what's admins final decision?

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

Я, конечно, в контесте налажал, и, скорее всего, получил бы минус к рейтингу, но все равно жаль, что нерейтинговый контест(

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

Капец, так хорошо написал и тут вдруг: UPD2: контест объявлен нерейтинговым.Нет слов!

UPD1: А в чём причина хоть? 
UPD2:'Условие задачи было сформулировано неверно, что привело к несоответствию решений, правильный вариант условия появится совсем скоро, приносим участникам свои извинения.'
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится

    С января пишу только анрейт контесты. Тиммейт попросил пописать раунд, потренироваться. Написал. Анрейт. Судьба. :)

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

      Ненавижу анрейты — нет никакого адреналина от их написания.

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

        Был, особенно когда Д тестировалась, но потом резко упало настроение, ну жизнь то продолжается :D

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

          Ну тогда же еще не было известно, что контест анрейт.

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

        Но хотя тренировка никогда не помешает.

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

    Несправедливость!!!!!!!!!!!!!!!!!!!!111

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

да что ж такое, все никак cf не начнет стабильно хорошо делать контесты(

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

    да нормально, хватит ныть =)

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

      да мне как-то параллельно, но почему то тс может нормально раунды делать, а кф иногда косит (скажем так, кф косит чаще, чем тс)

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

    В силах каждого участника — попытаться это исправить, став автором.

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

I didn't consider to types of board, just i checked rotation of square board with same type shouldn't count twice, and got Accepted! I think something is wrong yet.

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

Прощай мечта стать синим до следующего контеста !

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

My comment was wrong, sorry...

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

    Right, you suddenly decided that your comment became wrong the moment it got downvoted a lot :)

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

Может для подобных случаев сделать опрос среди участников? или бредовая идея?

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

    Какой опрос? Явная бага в условии => анрейт раунд. Все в порядке вроде бы.

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

Whats case 15 in Problem C?

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

    Try this smaller test cases:

    7 6 
    -4 2 -2 -4 0 3 5 
    2 
    

    out 16

    7 2 
    5 1 -3 -4 -1 -5 1 
    1 
    

    out 7

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

Обидно, что так получилось с Е все-таки.

Приношу авторам контеста свои извинения за, возможно, некоторую резкость.

Большое спасибо за контест. В целом, он, скорее, всё же понравился.

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

    Задачи интересные были, жаль что идею на задачу 'С' не успел реализовать(

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

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

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

Был интересный контест.Жаль что я не сделал Д только по тому што думал што ето решение с поиском делителей долго работает.

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

spending my time from 22.00 — 02.00 waiting the systest while I have mid test in the next day and the contest end with unrated. . what a pitty. .

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

Comment deleted after a bit of thought, for more details read my reply 2 branches down this comment :)

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

    Oh seriously, how the hell is that anywhere near a trivial question or a "bad contribution to the community" that it gets downvoted?

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

      Is it a good contribution or a non-trivial question, really? :-)

      On a serious note, the editorial is already published here, it's just not translated into English yet. Most problem setters on Codeforces are Russian-speaking, so translating editorials takes longer than writing them, and it's a lot of work. Have patience.

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

        Yeah, thanks Nickolas. I'm not trying to justify my comment or anything; but I was frustrated about my bad performance yesterday :) To tell you the truth, I think I don't actually care about the editorial, I just wanted something to complain about. Sorry and thanks again!

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

    There is russian one

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

How did so many manage to solve E during the competition? It only passes if you make the same mistakes as the author; the answer to the first test case should be 3 since the second board lying down is a beautiful fence as well. You can see on the second test case that just having one board is okay.

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

Very old blog, but incase someone is stuck on problem C like I was, the idea is to maintain a set of K maximums using two sets.