F. Кинотеатр для мизантропов

Codeforces
IDCF10096F
Time2000ms
Memory256MB
Difficulty
English · Original
Formal · Original
Наконец-то в городе открылось заведение, предназначенное специально для тех, кто любит кино и не любит компанию. Добро пожаловать в кинотеатр для мизантропов! Чтобы ничьи головы не заслоняли зрителям экран, кресла в кинотеатре расположены в один ряд и пронумерованы слева направо числами от 1 до N. Перед сеансом посетители заходят в зрительный зал по очереди, и каждый из них может выбрать любое свободное место по своему вкусу. Разумеется, публика кинотеатра полностью оправдывает его название, поэтому каждый зритель, начиная со второго, будет выбирать себе место таким образом, чтобы оказаться как можно дальше от ближайшего соседа. Если подходящих мест несколько, зритель выберет кресло с наименьшим номером. Вы знаете, сколько зрителей пришло на сеанс, и какое место выбрал первый из них. Сможете ли вы определить, какое место в итоге займёт каждый зритель? Ввод содержит целые числа N, M и S1 (1 ≤ N ≤ 106, 1 ≤ M, S1 ≤ N) — соответственно количество мест в кинотеатре, количество зрителей и номер места, которое занял первый зритель. Вычислите сумму (где Si — номер места, занятого i-м зрителем) и выведите остаток от деления этой суммы на 1000000007. В первом примере зрители занимают следующие места: #3, #10, #6, #1, #8, #2, #4. ## Входные Данные Ввод содержит целые числа N, M и S1 (1 ≤ N ≤ 106, 1 ≤ M, S1 ≤ N) — соответственно количество мест в кинотеатре, количество зрителей и номер места, которое занял первый зритель. ## Выходные Данные Вычислите сумму (где Si — номер места, занятого i-м зрителем) и выведите остаток от деления этой суммы на 1000000007. ## Примеры Входные данные10 7 3Выходные данные125Входные данные40 20 20Выходные данные3421 ## Примечание В первом примере зрители занимают следующие места: #3, #10, #6, #1, #8, #2, #4. [samples]
**Definitions** Let $ N \in \mathbb{Z}^+ $ be the number of seats in a row, labeled $ 1 $ to $ N $. Let $ M \in \mathbb{Z}^+ $ be the number of viewers, with $ M \leq N $. Let $ S_1 \in \{1, \dots, N\} $ be the seat chosen by the first viewer. Let $ S_i \in \{1, \dots, N\} $ be the seat chosen by the $ i $-th viewer ($ i \geq 2 $), selected to maximize the minimum distance to any occupied seat, with ties broken by choosing the smallest index. **Constraints** 1. $ 1 \leq N \leq 10^6 $ 2. $ 1 \leq M \leq N $ 3. $ 1 \leq S_1 \leq N $ **Objective** Compute $ \sum_{i=1}^M S_i \mod 1000000007 $.
API Response (JSON)
{
  "problem": {
    "name": "F. Кинотеатр для мизантропов",
    "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": "CF10096F"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Наконец-то в городе открылось заведение, предназначенное специально для тех, кто любит кино и не любит компанию. Добро пожаловать в кинотеатр для мизантропов!\n\nЧтобы ничьи головы не заслоняли зрителям...",
      "is_translate": false,
      "language": "English"
    },
    {
      "statement_type": "Markdown",
      "content": "**Definitions**  \nLet $ N \\in \\mathbb{Z}^+ $ be the number of seats in a row, labeled $ 1 $ to $ N $.  \nLet $ M \\in \\mathbb{Z}^+ $ be the number of viewers, with $ M \\leq N $.  \nLet $ S_1 \\in \\{1, \\do...",
      "is_translate": false,
      "language": "Formal"
    }
  ]
}
Full JSON Raw Segments