C. Рудольф, Ромашки и Упыри

Codeforces
IDCF10176C
Time2000ms
Memory256MB
Difficulty
English · Original
Formal · Original
Прекрасным летним вечером, хорошо поработав лопатой в саду, вдохновлённый Рудольф решил создать лучшую компьютерную игру. В его памяти еще были свежи воспоминания о дурманящем запахе ромашек, растущих на грядках сада, и о вредителях, неутомимых упырях, постоянно пытающихся погрызть корни ромашек. Рудольф решил посвятить свою игру извечной борьбе ромашек и упырей. Перед началом сражения двое героев — Ромашка и Упырь — располагаются друг напротив друга. Каждый из героев изначально имеет по N единиц жизни, а также по K солдат в резерве. Солдаты необходимы для защиты героя и нанесения урона противнику; каждый из них характеризуется силой атаки Ai и запасом жизней Hi. Сражение разделено на фазы, каждая из которых проходит следующим образом: У каждого героя в любой момент сражения может быть не более одного защитника. Сами герои не могут атаковать. Сражение завершается, если запас жизней одного из героев станет меньше либо равен нулю (тогда этот герой проигрывает), либо если у обоих героев погибают все солдаты (тогда объявляется ничья). Рудольф попросил вас написать программу, которая определит, существует ли стратегия гарантированной победы Ромашек или гарантированной победы Упырей. Первая строка содержит целые числа N и K (1 ≤ N ≤ 30, 1 ≤ K ≤ 5) — соответственно начальное количество единиц жизни у героев и начальное количество солдат в резерве героев. Следующие K строк описывают солдат из резерва Ромашек. Каждая из них содержит целые числа Ai и Hi (1 ≤ Ai, Hi ≤ 8) — соответственно силу атаки и запас жизней солдата. Следующие K строк описывают солдат из резерва Упырей в аналогичном формате. Выведите _FLOWER_, если гарантированно победят Ромашки, _GHOUL_, если гарантированно победят Упыри, либо _TIE_ в случае, если невозможно однозначно определить победителя. ## Входные Данные Первая строка содержит целые числа N и K (1 ≤ N ≤ 30, 1 ≤ K ≤ 5) — соответственно начальное количество единиц жизни у героев и начальное количество солдат в резерве героев.Следующие K строк описывают солдат из резерва Ромашек. Каждая из них содержит целые числа Ai и Hi (1 ≤ Ai, Hi ≤ 8) — соответственно силу атаки и запас жизней солдата.Следующие K строк описывают солдат из резерва Упырей в аналогичном формате. ## Выходные Данные Выведите _FLOWER_, если гарантированно победят Ромашки, _GHOUL_, если гарантированно победят Упыри, либо _TIE_ в случае, если невозможно однозначно определить победителя. ## Примеры Входные данные10 31 22 33 42 51 13 2Выходные данныеFLOWERВходные данные1 41 67 38 12 75 11 16 14 7Выходные данныеTIEВходные данные13 34 22 56 18 44 85 4Выходные данныеGHOUL [samples]
**Definitions** Let $ N \in \mathbb{Z}^+ $ be the initial health of both heroes. Let $ K \in \mathbb{Z}^+ $ be the number of reserve soldiers per hero. Let $ F = \{(a_i, h_i) \mid i \in \{1, \dots, K\}\} $ be the set of Flower soldiers, where $ a_i \in \mathbb{Z}^+ $ is attack power and $ h_i \in \mathbb{Z}^+ $ is health. Let $ G = \{(a_j, h_j) \mid j \in \{1, \dots, K\}\} $ be the set of Ghoulish soldiers, with same interpretation. **Constraints** $ 1 \leq N \leq 30 $, $ 1 \leq K \leq 5 $, $ 1 \leq a_i, h_i \leq 8 $ for all soldiers. **Game Rules** - Each hero has at most one defender active at any time. - Heroes cannot attack directly. - In each phase: - Each hero selects one soldier from reserve (if any remain) to become active defender, or keeps current one. - Active defenders simultaneously attack each other: - Flower’s active soldier deals $ a_F $ damage to Ghoulish hero. - Ghoulish’s active soldier deals $ a_G $ damage to Flower hero. - Then, each active soldier takes damage equal to the opponent’s active soldier’s attack power. - Soldiers with health $ \leq 0 $ die and are removed. - Game ends when: - One hero’s health $ \leq 0 $ → opponent wins. - Both heroes have no soldiers left → tie. **Objective** Determine the outcome under optimal play: - Output _FLOWER_ if Flower has a guaranteed winning strategy. - Output _GHOUL_ if Ghoulish has a guaranteed winning strategy. - Output _TIE_ otherwise.
API Response (JSON)
{
  "problem": {
    "name": "C. Рудольф, Ромашки и Упыри",
    "description": {
      "content": "Прекрасным летним вечером, хорошо поработав лопатой в саду, вдохновлённый Рудольф решил создать лучшую компьютерную игру. В его памяти еще были свежи воспоминания о дурманящем запахе ромашек, растущих",
      "description_type": "Markdown"
    },
    "platform": "Codeforces",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "CF10176C"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Прекрасным летним вечером, хорошо поработав лопатой в саду, вдохновлённый Рудольф решил создать лучшую компьютерную игру. В его памяти еще были свежи воспоминания о дурманящем запахе ромашек, растущих...",
      "is_translate": false,
      "language": "English"
    },
    {
      "statement_type": "Markdown",
      "content": "**Definitions**  \nLet $ N \\in \\mathbb{Z}^+ $ be the initial health of both heroes.  \nLet $ K \\in \\mathbb{Z}^+ $ be the number of reserve soldiers per hero.  \nLet $ F = \\{(a_i, h_i) \\mid i \\in \\{1, \\do...",
      "is_translate": false,
      "language": "Formal"
    }
  ]
}
Full JSON Raw Segments