M. Продолжение следует

Codeforces
IDCF10126M
Time2000ms
Memory256MB
Difficulty
English · Original
Formal · Original
Стив коснулся экрана, чтобы нажать кнопку «OK» под сообщением о том, что для операционной системы установлены последние обновления. Компания Gadget Operating System обозначает версии операционной системы как v.m, где v — это основной номер версии, а m — номер обновления. Когда выходит версия с новым основным номером, то её обозначение выглядит как v.0. Затем выпускается p обновлений для этой версии (обозначения v.1, v.2 и т.д.). После того, как будет выпущена версия, обозначаемая v.p, следующим обновлением станет версия с очередным основным номером (v + 1). Стив помнит, что незадолго до истории с Quantum Artificial Intelligence он обновлял операционную систему до версии a.b. А после установки последних обновлений версия системы — z.y. Ваша задача — определить, сколько за это время было выпущено обновлений. В первой строке содержится целое число p (1 ≤ p ≤ 1000) — максимально возможный номер обновления. Во второй строке содержатся два целых числа a и b (1 ≤ a ≤ 1000, 0 ≤ b ≤ p), составляющих обозначение старой версии операционной системы a.b. В третьей строке содержатся два целых числа z и y (1 ≤ z ≤ 1000, 0 ≤ y ≤ p), составляющих обозначение новой версии операционной системы z.y. Ради упрощения числа, составляющие обозначения версий, написаны через пробел, а не через точку. Гарантируется, что входные данные корректны. В первой строке выведите количество обновлений, которое было выпущено до новой версии включительно. ## Входные Данные В первой строке содержится целое число p (1 ≤ p ≤ 1000) — максимально возможный номер обновления.Во второй строке содержатся два целых числа a и b (1 ≤ a ≤ 1000, 0 ≤ b ≤ p), составляющих обозначение старой версии операционной системы a.b.В третьей строке содержатся два целых числа z и y (1 ≤ z ≤ 1000, 0 ≤ y ≤ p), составляющих обозначение новой версии операционной системы z.y.Ради упрощения числа, составляющие обозначения версий, написаны через пробел, а не через точку. Гарантируется, что входные данные корректны. ## Выходные Данные В первой строке выведите количество обновлений, которое было выпущено до новой версии включительно. ## Примеры Входные данные122 52 8Выходные данные3Входные данные83 44 5Выходные данные10Входные данные142 114 1Выходные данные20 [samples]
**Definitions** Let $ p \in \mathbb{Z} $ be the maximum update number per major version. Let $ (a, b) $ be the old version, where $ a $ is the major version and $ b $ is the update number. Let $ (z, y) $ be the new version, where $ z $ is the major version and $ y $ is the update number. **Constraints** 1. $ 1 \leq p \leq 1000 $ 2. $ 1 \leq a \leq 1000 $, $ 0 \leq b \leq p $ 3. $ 1 \leq z \leq 1000 $, $ 0 \leq y \leq p $ 4. The new version is chronologically after or equal to the old version. **Objective** Compute the total number of updates released from version $ (a, b) $ (exclusive) to version $ (z, y) $ (inclusive): $$ \text{Total updates} = (z - a - 1) \cdot (p + 1) + (y - b) + (p + 1) \cdot \mathbb{I}_{z > a} - \mathbb{I}_{b = p \land z = a + 1} $$ *Alternatively, simpler unified formula:* $$ \text{Total updates} = (z - a) \cdot (p + 1) + y - b - (p + 1) $$ **But corrected for direct progression:** $$ \boxed{\text{Total updates} = (z - a) \cdot (p + 1) + y - b} $$ *if $ (a, b) = (z, y) $, result is 0 — but since update occurred, we assume $ (z, y) > (a, b) $ lexicographically.* Actually, the correct direct count is: From $ (a, b) $ to $ (z, y) $: - If $ z = a $: updates = $ y - b $ - If $ z > a $: updates = $ (p - b) + (z - a - 1) \cdot (p + 1) + (y + 1) $ But simpler: Total versions from $ (a, b) $ to $ (z, y) $ inclusive: $$ \text{Total} = (z - a) \cdot (p + 1) + y - b $$ But subtract the initial state if we count *updates after* $ (a,b) $: We want **number of updates released after** $ (a,b) $ **up to and including** $ (z,y) $. So: $$ \text{Updates} = \left[ (z - a) \cdot (p + 1) + y \right] - \left[ (a - a) \cdot (p + 1) + b \right] = (z - a) \cdot (p + 1) + y - b $$ But if $ (a,b) = (z,y) $, this gives 0 — correct. However, if we started at $ (a,b) $ and ended at $ (z,y) $, and we count **how many updates were released** (i.e., transitions), then it's: $$ \boxed{(z - a) \cdot (p + 1) + y - b} $$ ✅ **Final Answer:** $$ \boxed{(z - a) \cdot (p + 1) + y - b} $$
API Response (JSON)
{
  "problem": {
    "name": "M. Продолжение следует",
    "description": {
      "content": "Стив коснулся экрана, чтобы нажать кнопку «OK» под сообщением о том, что для операционной системы установлены последние обновления. Компания Gadget Operating System обозначает версии операционной сис",
      "description_type": "Markdown"
    },
    "platform": "Codeforces",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "CF10126M"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Стив коснулся экрана, чтобы нажать кнопку «OK» под сообщением о том, что для операционной системы установлены последние обновления.\n\nКомпания Gadget Operating System обозначает версии операционной сис...",
      "is_translate": false,
      "language": "English"
    },
    {
      "statement_type": "Markdown",
      "content": "**Definitions**  \nLet $ p \\in \\mathbb{Z} $ be the maximum update number per major version.  \nLet $ (a, b) $ be the old version, where $ a $ is the major version and $ b $ is the update number.  \nLet $...",
      "is_translate": false,
      "language": "Formal"
    }
  ]
}
Full JSON Raw Segments