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

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

Всем привет!

Решаю задачу B "Свои правила блэкджека" с SNSS-2013. Верно ли, что для нахождения ответа необходимо перебрать все перестановки чисел и, зафиксировав некоторую из них, перебрать все возможные варианты математических операций (размещения с повторениями)?

Код, стабильно получающий WA15 :(

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

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

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

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

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

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

      Значение выражения, а не значения промежуточных операций.

      P.S. попробуйте из чисел 1, 3, 4, 6 получить 24.

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

    На оригинальном контесте проходили неправильные решения (в интах).

    А у redjohn падает, потому что его код не моделирует наличие скобок/приоритет операций, а считает всегда слева направо по порядку. Пример теста:

    7 7 7 4

    Можно получить (7*7)-(7*4)=49-28=21, а это решение выводит 17.

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

      Спасибо за контрпример!

      Действительно, не подумал насчет приоритета (*facepalm)