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

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

Доброго всем времени суток!

Приглашаю Вас поучаствовать в 194 раунде, автором которого я являюсь. Это мой четвёртый раунд, хотя предыдущие три были очень давно: Codeforces Beta Round 79 (Div. 1 Only), Codeforces Beta Round 94 (Div. 1 Only), Codeforces Round 110 (Div. 1) (прошу прощения у div-2 участников, что упоминаю только div-1 раунды, просто ссылка даже на один раунд уже чересчур громоздка).

В этот раз, как в раунде Codeforces Beta Round 79 (Div. 1 Only), вы вновь поможете мальчику Геральду разобраться с его проблемами. На этот раз его проблемы настолько серьёзны, что он стал координатором контестов на Codeforces и помог мне сделать этот раунд, чтобы спихнуть их на вас.

Хочу поблагодарить Gerald за то, что он очень хорошо выполняет работу координатора. Работая с ним, ощущаешь, что всё действительно под контролем. Кроме того, спасибо Марии Беловой за перевод условий на английский. Также спасибо Seyaua и Aksenov239 за тестирование задач.

Этот раунд состоится в необычное время — 12:30 по Московскому времени.

Разбалловка стандартная, 500 — 1000 — 1500 — 2000 — 2500.

Всем спасибо за участие, добро пожаловать в разбор.

Мои поздравления победителям:
Дивизион 1:
1. KADR
2. RAVEman
3. PavelKunyavskiy
4. Dmitry_Egorov
5. RAD
6. sy2006
7. mmaxio
8. riadwaw
9. niyaznigmatul
10. RomaWhite

Отдельно хочу отметить сразу двух украинских участников, которым единственным покорились все пять задач!

Дивизион 2:
1. IMOiguanas
2. savsmail
3. suyash666
4. AntiForest
5. kang205
6. jschnei
7. littlepanda
8. langdamao
9. 9mmlitswe
10. Renkai

Следуя многочисленным просьбам к авторам раундов, расскажу немного о себе. Меня зовут Валера Самойлов и мне 24 года. Gerald не смог сходу вспомнить более старшего автора Codeforces раунда =) Я закончил мат-мех СПбГУ пару лет назад (тем, кому это о чём-то скажет, ПОМИ-группа + кафедра алгебры, диплом по теории графов). Сейчас я работаю в области химической укладки графов и вместе с женой воспитываю годовалую дочку. Кроме того, последние 8 лет я учу детей математике (а в последний год ещё и программированию) в ЮМШ (Юношеской Математической Школе, это в Питере), которую я и закончил в своё время. Всё это объясняет, почему я так долго не делал раундов, хотя задач у меня придумано предостаточно. Тем не менее, летом, пока жена с дочкой на отдыхе, а учить некого, я улучил на это время и надеюсь, что вам не покажется, что я провёл его зря.

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

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

а что такое химимческая укладка графов?

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

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

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

One of the best announcement posts in CF :)

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

Glad to see someone coming back and help setting problems in codeforces. Shows the interest people have for the field :)

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

Стоит упомянуть в анонсе совсем необычное время раунда.

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

Не плохо было бы открыть регистрацию на несколько часов раньше.
upd. Открыли на 5 часов раньше чем предполагалось :)

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

    Неплохо было бы ограничить регистрацию ибо тормозит.

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

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

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

        Это ж как веб-фронтенд из-за тестов может тормозить? Надо не ограничивать регистрацию, а оптимизировать (или scale'ить) систему.

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

          То-то тестирование первые 30 минут вчера шло с очередью на 23 страницы. Как же этот веб-фронтенд такое допустил?

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

            ОК, это тоже проблема. Но ИМХО, когда тормозит веб-фронтенд, не открываются страницы и не сабмитятся челленджи — это на порядок хуже.

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

Hope for a round with clear and easy-understanding problems' statement~

Best ratings to all participants~

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

wow !!! this contest time will be very comfortable for me and I hope for other. if contest time will be at 19:30 i didn't attend. I hope a lot of participant attend in this contest.Thanks codeforces !!!

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

Good Luck & Have Fun !!!

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

Unusual time.Good luck to every one.

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

Have Fun — Every One!
Good Luck — Motherfuck!

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

"This time his problems are so serious that he became coordinator of contests on the Codeforces, to be able to throw his problems to you."

I liked this :D

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

Wow! Great memories from your last contest(#110)! Hope this one to be even better :) Thanks for setting problems again.

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

I hope your daughter and wife go on vacations more often,so CF users get to read more such awesome announcement posts.

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

Qiu Qing Nve!!

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

what will the scores for each problem? thx.

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

is codeforces slow with me only or with all?

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

I don't understand problem A and B T_T

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

Problem statements are easy to read, but difficult to understand...

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

I can't understand Problem C

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

For Problem B,what are the 3 points for the first example?

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

In problem D,What does "He moves each chip from its original edge to the opposite edge" mean? It means the point can only move in one derection?

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

    more formally:

    if chip starts at (1,k) it should end on (n,k) and vise versa

    if chip starts at (k,1) it should end on (k,n) and vise versa

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

      Also I think it means that it goes directly to its destination point. Otherwise the last given example would have a greater answer.

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

        yes,number of minutes=n-1

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

          Number of minutes doesn't seem to enforce anything in this case, because there is no requirement to reach destination during this period. The only requirement is not to fail.

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

what does problem C mean???

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

что мне пишет что я не зарегистрирован,что за бред...я решение не мог отправить из-за этого

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

    Было бы не плохо, если бы вы Print Screan сделали.

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

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

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

        Задачи видят все, не только те, кто зарегистрирован на соревнование

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

Неужели все быстрые кубы в D посдавали? Или у меня опять помутнение рассудка сегодня?

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

    n^2log 1e9 у меня

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

      Как?

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

        Сперва бинпоиск, внутри все тупо, просто надо понять, что там квадрат суммарно.

        Код

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

          Да, совсем я отупел. Это же очевидно

          Ну и жаль, что С так мало стоила

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

        бинпоиск дает нам матричку из 0 и 1 где надо найти 4 единички в вершинах прямоугольника. Тогда будем добавлять по строчке. Если наше множество единичек пересеклось с множеством какой-то предыдущей строки больше чем в одной единичке, то у нас есть прямоугольник. А иначе сумма количеств единичек в столбиках, в которых у нас единички <= n по принципу дирихле.

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

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

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

    Квадрат с бинпоиском

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

    Нет, у меня

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

      А как за такую сложность сделать? У меня еще все домножается на m/30

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

        Взять все числа из таблицы, сделать бинпоиск по ответу. Теперь надо узнать, есть ли прямоугольник такой, что в углах числа  ≥ const. Ну например сделать так, если есть пара строк, такая что в обеих есть пара столбцов, в которых числа  ≥ const, то существует. Пар столбцов m2. Берем все строки, в каждой строке перебираем пару хороших столбцов в этой строке, если такая пара уже встречалась в какой-то предыдущей строке, то мы нашли ответ.

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

    Вообще, имхо, почти все кубы должны слететь на тестах из одних 0 и 1, с ответом 0, но числом единичек большим чем линейным. Я умею делать n*log(n) (жаль, что багу в генераторе нашел слишком поздно, так бы еще поломал скорее всего), но думаю, что можно и O(n^2) — основная идея напихать в строчку как можно 1 так, чтобы все расстояние между ними были различными, а потом прокрутить ее n раз.

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

В D куб должен заходить?

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

    у меня взломали

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

      Мой вообще по WA взломали. Надо багу искать. А так в запуске на тесте 1000*1000 работало ~ 1.5 с.

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

      Ну, кубы очень разные бывают

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

        У меня не зашло даже на C с ускоренной итерацией указателями.

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

          А у меня зашел куб на логарифм.

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

            Там еще вроде как 1/32 есть. Так что это примерно как просто куб.

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

              Ну да, делить на 32. Но асимптотически это куб на логарифм, все-таки.

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

I wonder what does Problem C want??? Please explain test 2 in detail...

  • »
    »
    11 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится +2 Проголосовать: не нравится
    Case 0: Buyer has only 1 coins. Here he will be able to give exact sum. So, invalid.
    Case 1: Buyer has 1 and 3 coins. In this case, he will be able to give 4 (1,3). Invalid.
    Case 2: Buyer has only 3 coins. In this case ans is 2.
    Case 3: Buyer has coins with value more than 3. In this case ans is 1.
    

    As we have to maximize the number of coins. Ans is 2 from case 2.

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

Какая разница, сколько и каких проверяющих серверов, если, как обычно, за несколько минут до конца на десятки секунд притормаживает всё остальное... :(

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

At problem A: It says: Then he took out all his coins and tried to give Gerald a larger than necessary sum with as few coins as possible.

But for 13 the answer seems to be 5 ( 3 + 3 + 3 + 3 +3) when 15 can and must be obtained from the above statement from 9 + 3 + 3

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

    "Among all combinations choose the maximum of the minimum number of coins."

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

      I can't understand what you want to say.

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

        One day an unlucky buyer came. He did not have the desired sum without change

        Then he took out all his coins and tried to give Gerald a larger than necessary sum with as few coins as possible. What is the maximum number of coins he could get?

        And then they explain it again: We consider all the possible combinations of coins for which the buyer can not give Gerald the sum of n marks without change. For each such combination calculate the minimum number of coins that can bring the buyer at least n marks. Among all combinations choose the maximum of the minimum number of coins. This is the number we want.

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

      I know that you russians are the best at programming but please learn english

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

    Another confusion, for me, at problem A is for the second example: if the buyer had a coin of 9 marks, why would not he pay it? The answer in this case is one.

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

      Because we are considering all cases where the buyer cannot pay the right amount, and choosing the one where the minimum number of coins payed by the buyer is the largest.

      In this case that occurs, for example, for a buyer with coins 3 3.

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

    If the unlucky buyer doesn't have any 9-coin (in particular, he only has 3-coins), he needs to pay with only 3-coins.

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

      It says that "Then he took out all his coins and tried to give Gerald a larger than necessary sum with as few coins as possible". Therefore the buyer should have such coins in order to minimize the number of coins he gives away and it is better for him to have only a 9 marks coin.

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

    this two are different combinations. As the buyer MIGHT bring 5 coins of value 3, the buyer MIGHT need to use 5 coins even if he want to minimize the coin usage.

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

    I was thinking about the same: Why not just give 3^x, where x is a large number, then the answer will always be 1.

    But you have to find the maximum out of all combinations.

    9 + 3 + 3 is a valid combination, 3 + 3 + 3 + 3 + 3 too, but it is also the maximum one.

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

      What if we consider the sum 3^0 + 3^1 + 3^2 + ... + 3^k? There is only one possibility to pay it, with k+1 conis.

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

    9+3+3 is possible assuming the customer has a 9-mark coin.... 3+3+3+3+3 is when the customer has only 3-mark coins (possibly he may have 1-mark coins also) that's why 15 is the correct answer

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

    For each such combination calculate the minimum number of coins that can bring the buyer at least n marks.

    In this sentence, it seems that "number of coins" means "change".

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

A bitset round!! My solution to both D and E used bitset to optimize brute force algorithm.

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

    Yes, I tried using bitset for E and some randomized algorithm, but the constants were too large so that I kept getting TLE until contest ends :(

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

Спасибо за классный раунд)
В Е существует решение, которое работает быстрее, чем за O(n*n*(n/64)*log(n*n))?

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

    У меня, например, без логарифма.

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

      как ты избавляешься от бинпоиска?

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

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

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

        Надо просто отсортировать ребра и перебирать их в порядке уменьшения длины, а дальше битмасками за n/32 проверять. Я послал именно это.

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

          Да просто перебирать пары вершин тоже катит)

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

          Только не на Java. Чудесно сбалансированные тайм лимиты

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

          Объясните пожалуйста, что и как проверяется битмасками?

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

            Добавляем ребро (a, b).

            Проверяется, есть ли такое c, что a соединено с c и b соединено с c. Соседи каждой вершины — битсеты

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

    Я эту задачу не сдал. Но мне кажется что решение такое. Бинпоиском подберем ответ. Переберем одну из вершин ответа. Выкинем все достаточно близкие вершины. В оставшемся множестве найдем две наиболее отдаленные друг от друга точки(O(nlogn)) и проверим что они нам подходят. Решение O(n*log(n)*n*log(n))

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

      Я тоже думал над таким решением, но мне кажется, что на практике оно получиться более медленным, чем n^3 / 64.

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

      Если отсортировать все точки в начале, то получим решение за O(N2·log(N)). Я как раз такое сдал. Но его все же обогнали оптимизированные решения за куб с битсетами.

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

      Я сорчу все ребра, дальше по ним бин поиск
      Затем между всеми помечаю в бит масках только те ребра, которые больше рассматриваемого, после чего перебираю все пары вершин, между которыми ребро больше либо равно просматриваемого, и для них за n/64 проверяю, есть ли хоть одно подходящее

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

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

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

Please codeforces, i beg u for proper english...took me 1 hr to understand Prob c div 2

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

    Although the question were pretty wonderful...But native english speakers face a lot of problem understanding the problem statements...

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

Thank you Sammarize for preparing this wonderful round and good problems. After Codeforces Round #193 I became disappointed but now I'm happy to participate in this round.

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

Учитывая количество пройденных претестов, в Div1 D действительно существует какое-то простое решение? У меня сложилось впечатление, что претесты слабые в ней: лажа, которая дает неправильный ответ на тесте

2 4
4 0 4 5
4 0 4 0

претесты проходит. UPD. Вопрос снят. Претесты в D и E действительно слабее остальных:

518 -> 507
386 -> 366
22 -> 11
254 -> 125
75 -> 31
»
11 лет назад, # |
  Проголосовать: нравится +16 Проголосовать: не нравится

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

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

    А мне наоборот кажется =) Раньше вечно то геометрия с точностью в А-В попадется, то еще что-то невпихуемое без монтировки...

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

      Сейчас понял, что задачу A вообще неправильно распарсил. Ну хватит уже делать "найдите минимум из максимумов минимумов максимов", правда. Stack overflow при прочтении же.

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

        Да, я тоже потратил много времени чтобы понять условие.

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

    А у меня почему-то стойкое ощущение, что уровень участников постоянно падает. Хоть это и абсурдно, и, скорее всего, неправда. Но "не тупить и сдавать шару" когда-то означало не такие высокие места, как сейчас. К примеру, в прошлом матче 3 простые задачи за разумное время — место около топ-20, в этом — около топ-25.

    Может быть, у меня просто взгляды на "шару" меняются со временем.

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

      Из-за новых регистраций возникает инфляция рейтинга. Поэтому, R=1700 два года назад это не то же самое, что R=1700 сегодня.

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

        Даже не об этом речь.

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

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

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

trappy Div2 B…

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

@ Codeforces team:

Please, hire a proofreader with excellent English. TopCoder has misof that always checks all problem statements very carefully, word-by-word. Therefore we almost never have confusion in SRM statements.

Sincerely,

Contestant who took much longer time to understand problem A and B than to actually write the solutions

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

Вы серьезно не хотели n^3 / 32 в Е? А то очень странно, что мое не проходит, вроде везде очень простые операции

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

    Нет, мы хотели n^2logn. Но, к сожалению, я не придумал n^3/32. Если бы придумал, то или сложность была бы другая, или ограничения.

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

      Самое неприятное что в итоге это решение проходит на С++, но не проходит на Java...

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

        Егор, я посмотрел твой код, и... у нас разные n^3/32. Ты ищешь что-то вроде ориентированного цикла по сути, вместо неориентированного. Итого в самом вложенном месте у тебя две битовые операции, вместо одной. Ну избавления от лишней вложенной индексация наверняка немного поможет. В любом случае, n^3/32 на C++ не просто заходит, а залетает — у меня 1934мс при TL 9с. Ну не верю я, что Java 7 настолько медленнее, честно.

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

          P.s. У mmaxio на Java 7 куб/32 зашел за те же 2с.

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

          Я в дорешку заслал такой же куб, как у тебя — все равно tl. Возможно, я слишком высокого мнения о Java оптимизаторе, но мне казалось, что таки вынести обращение к массиву в переменную в месте, где в массивы не пишут — он умеет

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

          Ок, оказалось, что дело в сортировке 4 500 000 чисел, тормозила именно она

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

            Она всегда медленная, или там был какой-то антиквиксорт тест?

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

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

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

Fast system testing! Thank you.

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

Why can't I upload a data input file which larger than 256kb? Today I have lots of chances to HACK!!!! My data is not large enough to stop many solution which not pass the system test!

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

nice contest :)

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

yongheng5871 and sspa write the same code for problem D and E.

D: 4179664 and 4179733

E: 4184415 and 4185562

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

Fun Div 2 contest, but I really wish B's statement hadn't referred to the missing central point as "the average" (and used a test case in which it was) when it wasn't required to be.

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

    Totally agree with you, I was confused the whole time about whether the middle point shouldn't be included or the "average of the 9 points" shouldn't be included, which could be two completely different things

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

Awesome contest ! But in Div 2 problem B You should have stated that points can be repeated or at least include it in pretests.

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

    despite getting a wrong answer due to this, i don't agree with you, especially because they had mentioned "You do not have any other conditions for these points." in the problem statement. to all coders who failed B because of this, hopefully this will teach us to take NOTHING for granted in future, and read the constraints properly!!

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

My submission for D (4187066) gives WA on pretest 1, answer 1, but locally it gives 0, what could be the problem?

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

Number of people who passed each problem: C:14, D:135, E:33.

I guess it will be better if we use dynamic scores.

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

If the statement on A div 2 says that "You need to print n lines, on the i-th line print n integers", then, why people can print (n*n)/2 lines with only 2 integers each. I tried to hack this solution following the statement but he was right. Why? Thanks in advance.

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

    all whitespaces are considered equivalent...don't know why, but that's the way it is.

    also, before you attempt to hack a solution, just below the "Hack" button it says "be careful, whitespaces will not be considered" or something like that just to alert you to this possibility!! so from next time, read properly before hacking!

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

    I guess the checker thinks any kind of whitespace (space, newline, etc) as a single separator. In particular, you can replace any space with newlines, and any number of them is considered a single whitespace. Yes, you can even output everything in a single line, with spaces separating them. If the checker uses scanf in C++ or similar, this makes sense; scanf considers any stretch of whitespaces as a single space/newline.

    EDIT: Sniped qq

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

Problem B div2 was really tricky! It seemed to be really easy(and it was), but a lot of people got hacked or wrong answer after system testing because of weak pretests.

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

Please explain why the answer for div2D 'pretest 6' is 4? Test case :

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

Ааа я желтый ураураура

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

    Отныне всегда актуально, я так думаю...

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

      Ну так да, но сам факт того, что я хоть чуть-чуть желтый радует :)

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

Changed cin to scanf in problem D and got accepted :(

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

Some questions are hard to explain with pure words. It's better to attach simple graphs explaining the ideas. Also, give one "meaningful" example with a detailed explanation on how to arrive the output would be very helpful too. I suppose it doesn't take a lot of work from the problem writers.

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

Is the intended solution for D1-D is O(N^3 lg max{a}) + bitmask for speedup?

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

why does codeforce run test cases after the contest?

that results in wrong answer even if pretests passes

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

    1 for faster test during the contest 2 to give chance for participants to hack solutions

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

    During the contest your solution is tested on a number of tests called "pretests". If your solution passed those tests it does not mean that it is correct. Therefore it has to pass the entire set of tests so that it may get accepted.

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

A question about D,if we sort number in order,insert them from big to small,and use brute force to check.It can pass system test.But what is the upper bound of numbers inserted?I can construct a test case that should use O(nlogn) numbers.

11010001

01101000

00110100

00011010

00001101

00000110

00000011

00000001

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

Почему в Д неправильно перебирать пару строк, а потом идти и искать за линию второй максимум? Почему это падает? :(

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

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

    27 тест имеет такую структуру: нарисована табличка в которой числа расставлены произвольно, но с условием, что любое число на строке i меньше любого числа на строке i+1 (для любого i). И потом взяли один произвольный столбец и одну произвольную строку и все числа в этом столбце заменили на одно и тоже число mx, которое больше всех остальных чисел в таблице.

    Этот тест, кстати, специально для того, чтобы TLлились решения наподобие Вашего, если в нет той самой хитрости ;)

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

      Так а что за хитрость-то?

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

        Надо перемешать строки =) Иначе, если всё написано так, как сказал Rubanenko, работать будет за O(n3).

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

          (N^3)/2 на кф не зайдет в три секунды при N=1000? Вы смеетесь?:)

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

            У Вас же там не 500 000 000 операций. Это только количество проверок при заходе во внутренний цикл. Ну, посмотрим.

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

          4188472 без перемешивания зашло

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

            А почему такое решение так быстро работает? У меня почти идентичное, но ТЛится.

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

              А у него, между прочим, 2652 мс, так что писать надо аккуратно.

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

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

                UPD. Но то, что время так скачет — это, конечно, жесть. Полторы секунды разницы у одного и того же кода.

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  11 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  val = min(a[i][k], a[j][k]);
                  if (val < ans)
                            continue;
                  

                  Не пихается из-за того, что минимум вычисляется до проверки. Сделаете наоборот : две проверки, потом уже считаем минимум , и зайдёт.

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

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

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

                  ============================== Надо же, зашла, спасибо. Неужели присваивание и пара сравнений настолько увеличивает константу?

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

                  Ну при выполнении 5*10^8 раз двух сравнений или допустим 4 сравнений константа вроде как почти в два раза вырастает

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

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

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

        Да, я понял, что WA, я специально описал тест, чтобы Вам было проще найти ошибку.

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

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

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

      А зачем все хранить в линейном массиве? У тебя же умножений куча ненужных.

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

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

        UPD. Не пашет

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

    http://codeforces.me/contest/333/submission/4188307
    Исправлено else mx:=max(mx,x); и все числа integer, а не longint потому, что так ТЛ.

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

Может я туплю, но скажите, как в задаче 334A - Пакетики с конфетами проходят вот такие решения:

var i,n:longint;

begin
  readln(n);
  for i:=1 to sqr(n)div 2 do
   writeln(i,' ',sqr(n)-i+1);

end.

Если сказано что надо вывыести n строк, а тут выводится n^2/2

Test: #2, время: 0 мс., память: 0 КБ, код возврата: 0, код возврата чекера: 0, вердикт: OK
Ввод
4
Вывод
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
Ответ
1 16 2 15
3 14 4 13
5 12 6 11
7 10 8 9
Протокол тестирования
ok 
  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится -8 Проголосовать: не нравится

    Просто чекеры принято использовать нестрогие(забивающие на whitespace'ы)

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

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

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

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

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

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

We can solve E in O(n^2 log n) in such a way (my solution wasn't accepted, I think that it is some bug in my code rather than in and idea). Firstly sort the points from left to right and let's do the binary search on result. For each point P we throw away points which lies closer to P than our actual value from binary search and we have to check if there are a pair of points that distance between them is at least that actual value. But we can find the furthest pair of points among them, there is a well-known algorithm for that problem, which runs in O(n) (recall that we sorted points from left to right at the beginning, so we have O(n) time instead of O(n log n)), so we are done.

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

    I've got AC with the same idea. However, there are many O(N3) solutions optimized with bitsets which work much faster than this O(N2·logN) one.

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

A funny solution about E. 4187525

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

KADR — ZADR!

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

I think you guys should seriously start improving the english translation of the problems. I find it unfair that some people can read the grammatically correct version of the problem in Russian while others have to read it in a translation that sometimes is far from perfect. Just a suggestion

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

I got TLE at problem 333D - Характеристики прямоугольников in contest with 4185508, but I've resubmit the same code three times and got accept in 4188799, 4188820 and 4188829 for just 2214ms. I didn't use any random algorithm in the code, would it possible the new judging machine lead to the unstable result?

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

This is the one of the few contests where code reuse may be helpful :))

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

"Отдельно отмечу отметить" — что-то тут не так

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

А почему рейтинг перепосчитали? У меня было 1594 после контеста, а теперь стало 1595.

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

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

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

I think 333E - Летний заработок is not a good problem for 2500 point -- it's more like a 1500-point problem! I'd like to know the solution of author, because so many people use std::bitset to solve it and they get AC.

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

    Well, you can read the editoral.

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

      Oh, O(n^2*log(n)) is more reasonable... Maybe you should set the time limit to 5 sec...?

      a O(n^2*log(n))-complexity problem is really embarrassed and hard to find data to TLE the O(n^3) or O(n^2*log(n)*log(n)) algorithm.

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

I didn't take part in the contest, but was interested in language problems people reported. So I started to read A (fushar got +41 and +52 claiming that A and B were hard to understand due to poor English statements). I think I understand the description, although it would be hard to understand even if it was written in my native language. So I don't understand why do they blame English translations.

I suggest instead of repeatedly complaining about statements in general, give at least one example of what was said in a wrong way and how it should be correctly and clearly. Otherwise I assume (and so should the contest author) that you just don't know English well enough and the translations are ok and the complains are void.

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

    Thank you for the support!

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

    "Gerald is very particular to eight point sets" should instead be something like "Gerald is very fond of eight point sets". See the definition of particular to see why the confusion.

    "...except for the average of these nine points" in this case case the problem was referring to the middle intersection point in both the x and y axis between the intersections of 3 horizontal lines and 3 vertical lines. Such middle intersection point does not necessarily has to be the average point.

    "At least one of the chips at least once fell to the banned cell" could be, for example, "One of the chips falls in the position of any of the banned cells"

    And this are just a few examples when the real meaning of the sentence is somewhat hidden. There are other small mistakes that make the reading very rough like misuse or lack of articles for example.

    I know that you are not native english speakers (me neither) but I'm just saying that it would be nice to have a native english speaker proof-reading the problems so that we can all focus more on solving the problem than in understanding it.

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

      All the examples come from B other problems, which I didn't read. Your remarks sound reasonable. Probably with A the case was different. I saw some people having problems with understanding the Russian statement of A too.

      UPD: In Russian version the same problem of "average" exists, so this is not translation problem. The rest of language imperfections doesn't lead to misunderstanding the problem, I think. So it kind of defends my point: the translations (although not perfect) are not real problem.

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

        I was wrong.

        кроме средней из этих девяти точек

        средней may potentially mean average or middle. Definitely middle in this context. So it should be except for the average middle point of these nine points. And it was a translation problem. I hope this time I'm right.