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

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

Всем привет!

Совсем скоро, 13 января в 19:30 MSK состоится Codeforces Round #160, автором которого являюсь я. Это мой третий раунд на Codeforces и я надеюсь, что не последний.

Спасибо Жене Соболеву и Диме Соболеву (Seyaua и sdya) за помощь в тестировании задач, а также Геральду Агапову (Gerald) за помощь в подготовке раунда. Отдельное спасибо Марии Беловой (Delinur) за перевод условий на английский.

Разбалловка стандартная в обеих дивизионах.

Настоятельно рекомендую прочитать условия ВСЕХ задач.

Gl & hf ! :)

Контест окончен, надеюсь вам понравилось :)

Поздравляю победителей див1:
1). PavelKunyavskiy
2). Dmitry_Egorov
3). Nerevar
4). Egor
4). gawry

И победителей див2:
1). Pad
2). nirvanafreak
3). pablobce

Разбор по ссылке.

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

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

Good luck everybody!!! :)

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

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

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

    Идея хорошая, я тоже об этом думал. Есть мысли, как это хорошо сделать? Например, ориентироваться на оценки поста — так себе. Они зависят от широты аудитории и, например, фейл сервера повлияет на оценку, хотя автор не виноват.

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

      Может идея, возможно. не — очень, но как один из вариантов.

      Трудно додуматься до критериев "хорошести" раундов, но недостатки можно выявлять, например гробы на контестах (обидно, наверное, когда только один — два человека решили задачу), поэтому предлагаю примерную схему системы баллов: за проведение контеста очки, вычитать из них определенное количество за недостатки

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

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

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

          мне казалось это мнение большинства (серого — синего) на кодфорс

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

            а какая польза и удовольствие от контеста, где только легкие задачи?

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

      А почему не сделать систему оценки самих задач (как это сделано, например, на contester.tsure.ru )?

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

        А как сделано там?

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

          Кстати, можно действительно сделать какую-нибудь систему оценки задач.

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

          Так как задач в архиве заметно больше, чем авторов, то по этому критерию можно выделить, к примеру, топ-20 или топ-50 задач (потому как топ-50 авторов — пока что не сильно отличаются от "всех авторов").

          С одной стороны, каждый автор будет рад попаданию его задачи в такой топ. С другой, быть последним среди топ-50 — не значит быть последним в глобальном плане, т.е. пропадает проблема "обижаем нижних".

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

          вот так выглядит банк задач (рейтинг указывается в таблице напротив каждой задачи)

          а вот так окно с условием задачи

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

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

    Весьма спорно. Кажется любой проблемсеттер достоин похвалы и было бы неприятно быть последним в этом рейтинге.

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

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

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

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

        Как раз upd такой же написал :)

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

        Только при этом теряется оценка качества раунда например. И непонятно с каким весом учитывать Div1/Div2. И еще много подобных мелочей и не очень мелочей.

        Идея хорошая, только вот слово "рейтинг" тут звучит плохо, т.к. подразумевает некоторое сравнение на лучше/хуже. Которое для начала попросту некорректно, да и его сложно сделать объективным. Кому-то нравятся сложные раунды, а кто-то любит когда у 20 человек сдано все. И к сожалению многие меряют качество раунда своим выступлением на нем.

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

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

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

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

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

" Problems’ point values will be published before contest. " So the point values may not be as general?

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

    "I strongly recommend you to read ALL the problems.". Probably.

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

    Sereja always recommends to read all problems and it doesnt mean that point values may not be as general.

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

      I suggest this phrase means that E will be easier than usual. At least, E from the last Sereja's round was simple segment tree.

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

So sad,I have a important final exam in tomorrow moring.I have to sleep early so I can't participate this round. And wish all the participants get high rating :)

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

Good luck everyone ! Anyway, does anyone know any good book to prepare for Codeforces's contests ?

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

В задаче B, k меньше n?

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

Ops, всё. Догадался. :)

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

У меня появился вопрос по заданию C: в 3-ем примере правильный вывод должен быть 5 Поправьте,если я неправ.

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

    Там все правильно — берем 1 товар и 2 бесплатно, потом ещё раз (уже 6), остается 1 который покупаем. Итого 3. Но это не единственный способ.

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

Почему не получается отправить файл для взлома? Формат .txt, размер меньше 256 килобайт, формат верный.. Баг какой-то, или у меня у одного такая проблема? Выдаётся сообщение Невозможно обработать взлом, попробуйте еще раз

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

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

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

Sorry but a little question for pro C div.2 (it's not clearly stated)

can any item be left out (not using the discount)?

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

    No. You need to buy all the items.

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

    The statement wasn't clear to me either :-/

    You are asking two questions in fact:

    • Q: Can any item be left out? A: No
    • Q: Can you not to use a discount? A: Yes

    In my case I was lost in how the discount works. It works so, you have something in basket, and you add new (0, 1, 2) items to the basket that are for free than, but the condition from statement have to hold.

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

In problem A (Div 1), can somebody explain me what the sentence "_each of them mustn't be more expensive than the cheapest item out of the qi items in the cart_" means?

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

Sorry, I'm just noob

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

for problem B in Div 1 , I could not find any way to fit values in any data type except big int. So I had to go for python (though I could not complete the code) . I would like to know how guys managed to do in c/c++.

EDIT: I had underrated power of double. :(

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

    double works fine because answer is floating point number

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

      I've computed factorial using long double and it passed. value of 50 factorial using long double have significant difference with actual value, i thought i wont pass. I am curious to know what is the reason that long double didn't cause bigger error? (my code got tle system test just because i forgot to set dp array :(, it passed later in practice).

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

        actual value of 50! is, A=30414093201713378043612608166064768844377641568960512000000000000 & using long double it is, B=30414093201713378039796484017234741538658648106343392576177963008 so the relative error is 100*(A-B)/A = 0.00000000000000001255 % which is very little, & thus can be ignored

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

    If you solved the problem using DP to count how many subsets of a given size can appear before the i-th element for each i, you can also use long long int since the answer will not exceed 2^50. One can also use long double to compute the factorials and the "final" answer if one doesn't trust enough on double.

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

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

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

In Div1 E, does author's solution consider the following case? When you want to write 64, 7 moves is optimal: (1,0) -> (1,1) -> (1,2) -> (1,3) -> (1,4) -> (4,4) -> (16,4) -> (64,4)

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

Если в A задании учитываются только счастливые числа 4 и 7, так почему же в первом примере ответ 3, когда там только одно счастливое число 4? Или же всё-таки речь идет о любых числах не превосходяших k?

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

Very nice problems ... I have learned some new tricks ;))

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

    what exactly?

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +27 Проголосовать: не нравится
      • Write down all the cases of a problem (I failed B div2 because of not taking all cases in consideration)
      • 1LL is 1 in long long (C++)
      • Use a dynamic approach instead of a greedy one, if you're not sure
      • The first solution that comes through your head is not good :)) (this applies to me, lack of work)
      • Think that every problem is solvable (determined me to try more than 2 problems and I had time to read the fourth one)
      • I have managed to partially demonstrate why the solution to B div2 is correct (I have been trying for a long time to demonstrate the solution of a problem, in general, still cannot do it properly)

      This tricks or tips or whatever you would like to call them apply to me, I don't know about you, but maybe you can learn something from here

      :)

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

Any ideas for solving C ?? I was trying to find some pattern but of no use.

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

    Number of one's in the last row if the matrix has a size of m http://oeis.org/A048896

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

    Number of ones in i-th row equals to 2bin(i) - 1, where bin(x) is number of ones in binary representation of x. It's quite simple fact: if you draw a picture 100x100 you'll see lots of Serpinsky Triangles, also known as Pascal Triangles modulo 2. And number of ones in a row of Pascal Triangle modulo 2 has well-known formula (One way to prove it is using Luka's Theorem).

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

very fast system testing!

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

Как приятно, когда систест быстрый!

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

А зачем такой странный TL по D?
У меня решение работает за 0.6 с. На джаве что ли настолько медленнее работает?

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

    У меня решение работает чуть больше 2х. (на плюсах)

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

    Ну, у меня вот решение 5k^2 * log 100k * 10. Уложилось в 3 с правда

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

      Ты уверен, что о той задаче? Мне даже страшно представить откуда взяться количеству тестов в квадрате?

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

        Где ты видишь количество тестов в квадрате? Тестов 10

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

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

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

        5k = 5000

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

      Я кстати думал, что такое точно не зайдет, долго сомневался насчет 10 * 5000^2, потом написал, и заработало на случайных быстро.

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

        Ну вот 2.5 миллиарда, казалось бы, должно проходить в 6 секунд. А 250 миллионов и в секунду легко

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

Как решать B (div1)?

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

    Для начала переберем первого человека, который не влазит за стол, пусть его номер — k. Для всех оставшихся людей подсчитаем динамику dp[i][j] — сколько существует подмножеств из i людей, таких, что их суммарная толщина равна j. После этого для каждой суммарной толщины width, удовлетворяющей условию width + a[k] > p перебираем количество людей, которые набрали эту толщину. Пусть это количество равно q. Тогда у нас есть q! вариантов размещения людей перед k-м человеком и (n — q — 1)! вариантов очереди после k-го человека. Следовательно, к ответу необходимо прибавить q * q! * (n — q — 1)! * dp[q][width].
    В конце не забываем поделить ответ на n!.

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

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

WOW ! That was a very cool contest . I liked the problems very much :) , the system testing was very fast :) and there weren't any bugs with the system :). With one word — great :) !

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

Какой-то чекер неправильный... wrong answer 1st numbers differ - expected: '21.28731', found: '2.83180', error = '0.86697' http://mirror.codeforces.com/contest/261/submission/2919636

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

Почему в задаче С для теста 6 4 ответ 1?

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

    там мы имеем дело не с m, а с m + 1 строками и как раз на этой последней строчке будет 4

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

can div 2E be solved using http://oeis.org/A048896 and binary search ???

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

Контест прошел феерично... Сначала чуть не проспал начало, и в результате какое-то невообразимо долгое время решал B и C (непонятно, кстати, какая из них сложнее, мне кажется, B). Остается 25 минут до конца, читаю D. За 15 минут до конца начинаю писать явно треш с бинпоисками. Как и все на этом контесте, заработало далеко не сразу, да еще и упало на претесте. 5 минут до конца. Много бинпоисков... Много бинпоисков... Ну, конечно, указатели! Исправляю, остается 22 секунды до конца, отправляю. AC:)

Задачи, кстати, очень интересные, и в первых четырех кода совсем мало. Спасибо большое автору!

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

Задача С div 2, A div 1, кто подскажет хитрость 4 претеста? У многих падало на нем, а полностью он не влазит в окошко отчета. Или кто может подсказать ошибку моего решения? http://mirror.codeforces.com/contest/262/submission/2920411 Спасибо.

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

    Посмотри, когда minimal = 1. Не уверен, но пока что только это увидел, как тонкое место.

    UPD. Никогда! Вы слышите? Никогда не меняйте i в цикле по i! Может ошибка-то и не из-за этого, но это очень очень плохая привычка.

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

    попробуй тест 1 2 -1

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

    Спасибо, ошибка подсказали, она была в строчке min, вместо нее для коллекции нужно min_element.

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

There might be an issue with the testcases for problem div1-C.

My solution: http://mirror.codeforces.com/contest/261/submission/2919058 and ACube's solution: http://mirror.codeforces.com/contest/261/submission/2919909 give different results for the test case 1505335291 524288 . On my computer my output is 42353463, while ACube's is 42353462.

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

Wow! Fast System test and no bugs and etc. Thanks.

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

Вот это я еще чуть чуть и попал бы [1968 мс 2156 КБ] на Java 6 и то же самое на Java7 [171 мс 308 КБ] :)

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

    На Java6 мое решение не прошло. Один в один символ на дорешивании с Java7 прошло :-(

    Есть что намотать на ус: "Всегда! Всегда выбирай Java7!"

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

      Это довольно странно, вроде можно построить тест и против сортировки в седьмой джаве, пофиксили что ли недавно?

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

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

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

Thank you Sereja and everyone else for these great problems. Have fun everyone with great coding time :)

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

 my preciousssss

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

Servers are fast these days! For Div1 B, I submitted a O(p * n^4) solution, and to my surprise it got accepted! It took 1/2 second on the toughest test.

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

Problem C div-2 wasn't clear. The statement says " To use the discount number i, the customer takes a special basket, where he puts exactly qi items he buys." and that wasn't clear enough to state that a basket may have less than qi items in it.

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

    No. A special basket must have exactly qi items in it. But there was also said that he can buy items normally without discounts. I overlooked it at the start, too, but that's the first thing one needs to ask: could there be "no solution"?

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

can anyone tell me for div2 C why the correct output for this test case is 5 ?

2 4 7 7 1 1 1 1 1 1 1 1

according to this statement "where he puts exactly qi items he buys", isn't the correct output is 7 ? because if we use first discount, it can't be fit with the number of items in any ways ?

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

    1 1 1 1 1 1 1

    b b b b f f b( b == buy; f== free)

    answer — > 5

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

      I also struggled on this part for a minute. If you read carefully the problem statement says you can use the same discount multiple times

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

Проблема С (див2.). Помогите, пожалуйста, кому нетрудно. Сообственно вопросик, верно ли, что если : 1.Упорядочить 2 массива( скидок и вещей) по возрастанию. 2.Брать всегда количество вещей, которое будет в массиве скидок на 1 позиции.(тоесть наименьшее количество вещей). 3.Брать всегда самые дорогие вещи, тоесть идти по массиву вещей с конца. 4.Брать всегда 2 вещи по скидке. То я получу верный ответ? Падает на 5-ом тесте, к сожалению, баг отловить не получается. Кому нетрудно, пожалуйста, помогите. Буду очень благодарен! Спасибо, взаранее. Вот собственно код: http://mirror.codeforces.com/contest/262/submission/2919820

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

в "обОих" дивизионах:)

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

DIV 2: Problem C

Statement: The only condition imposed on the selected "free items" is as follows: each of them mustn't be more expensive than the cheapest item out of the qi items in the cart.

Input: 1 2 4 50 50 100 100

Output: 200

Note: In the first sample Maxim needs to buy two items that cost 100 and get a discount for two free items that cost 50. In that case, Maxim is going to pay 200.

Am I correct? If i take 50 50 in the cart and take a discount of 1 item. Then 100 100 in the cart and take a discount for 1 item Total Cost=150

According to the statement it's allow.

If i am wrong, please explain. Thanks in advance.

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

    You need to use all space in the cart

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

    If i take 50 50 in the cart and take a discount of 1 item.

    Of some other item, which is cheaper. So, if you "take 50 50" you can't have any discount in this testcase (because other items are more expensive).

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

DIV 2: Problem C

Statement: The only condition imposed on the selected "free items" is as follows: each of them mustn't be more expensive than the cheapest item out of the qi items in the cart.

Input: 1 2 4 50 50 100 100

Output: 200

Note: In the first sample Maxim needs to buy two items that cost 100 and get a discount for two free items that cost 50. In that case, Maxim is going to pay 200.

Am I correct? If i take 50 50 in the cart and take a discount of 1 item. Then 100 100 in the cart and take a discount for 1 item Total Cost=150

According to the statement it's allow.

If i am wrong, please explain. Thanks in advance.

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

    50 50 100 100 if you take 50 50 you can't use discount because according to statement:"The only condition imposed on the selected "free items" is as follows: each of them mustn't be more expensive than the cheapest item out of the qi items in the cart."

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

    I think you understood it wrong. The free items you get are not the ones you have in your discount but additional ones.

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

    Wrong, in your case, you will pay for (50, 50) and get extra 0 items for discount, and you will pay for (100, 100) and get extra 0 item for discount.

    You are paying 300 in total, discount doesn't mean you can deduct value for what you've paid for.

    Hope this helps.

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

    For me the statement wasn't clear too.

    Most important is this sentence: "..in addition to the items in the cart the customer can receive at most two items from the supermarket for free...". That means, that you choose items to buy, add those to cart and as a bonus you can choose 0-2 items as free ones.

    In this case you choose 100 and 100 in cart and then you get 50 and 50 as a bonus items, so you pay 200.

    I asked 3 questions during the contest how the discount works and none of the answers helped me to realize that, later I somehow realized...

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

    So, at the end of the test case any of the free items price has to be less than or equal to the item that has been bought. :)

    Now, i have understand. Thanks.

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

У меня одного открылись права редактирования тегов к задачам это контеста? Такого вроде не должно быть)

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

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

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

      Спасибо за пояснения, это просто мои первые часы в "синем цвете")

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

if( j < 0 ) { break ; }

just absence of this line in my code has cost me 2nd place in div 2 today :(

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

Когда опубликуете разбор?

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

Codeforces Round 111 (Div. 2)

i just want to ask about problem C. in this test case :

1 2 3 50 50 100

why the answer is 150 ? why not 100 ? if he got the first and second he'll get '50' free .. so 2 items of 50 and 1 item 50 free .

please if someone can explain

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

    You must put in cart exactly qi items ...

    There is only one qi, which is 2. So you must buy 2 items to get a discount.

    You buy 100 + 50, and get free 50 => total cost = 150

    You buy 50 + 50, you get no discount, because 100>50. This way you buy everything so the total cost is 200.

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

Who can explain this http://www.codeforces.com/contest/261/submission/2917414 solution for Div1-B?

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

In Div1 Problem A, I was confused because the problem statement considers the terms "basket" and "cart" to be the exact same thing.... Maybe that also caused many people confused about the discount system.

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

    Yes, I was also confused about problem A, & had to ask 2 questions to understand the problem clearly .

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

I solved three problems in yesterday's contest 160 in Division 2 . The contest page shows 3 out of 5 solved . However the problems page shows the "solved" color in only two of the three problems I solved . The third problem "Maxim and discounts" is not colored as solved . My rating has gone down from 1620 to 1579 . Last time my rating increased when I solved only two problems correctly . This time my rating has gone down after 3 successful submissions . I suspect there is some error in record keeping .

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

    Number of solved problems on its own doesn't matter. Only place in contest standings matters. Your place in this contest is worse than in previous, so it's natural that your rating decreased.

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

      Yes , but what about color code of problems solved successfully in the problems page . It is colored only for 2 of 3 problems I solved .

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

    Rating is recalculated after each contest based on your contest rank, not number of problems solved. About 'color not showing solved' in the problem set page, it is because the last 3 problems of div 2 is added from div 1. I solved 4 in div 2 and problem set page shows 2. See the problem ids in the problem set page — (262B,262A),261E,261D,261C,261B,261A. Only 262A and 262B will show solved. Rest are from div 1.

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

      But should that happen when the same problem appeared in both the divisions . 261A is same problem as problem C of division 2 .

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

        They only upload the div 1 version, otherwise if they added both problems, same problem will be added twice, I guess that's why they do it.

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

Надо полагать, разбора на русском не будет?

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

In problem-C Div2, the problem statement first uses "special basket" then "cart". And I think, maybe, it will be helpful to use only one of them so that contestants which have bad English ( for example : me ) would not get confused. ( I didn't know "cart" == "basket" )

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

edit : oh, missed something "where he puts exactly qi items he buys"