C. Рудольф и правильный порядок

Codeforces
IDCF10132C
Time2000ms
Memory256MB
Difficulty
English · Original
Formal · Original
Теперь, когда количество шкафов посчитано, и Леонидас и Роберт смогли их изготовить, перед Рудольфом встала не менее важная и сложная проблема: такая важная энциклопедия, как Сверхбольшая Энциклопедия Структур Данных, не может стоять абы как, её тома должны стоять в _правильном_ порядке, чтобы их было удобно искать и читать. Тома нумеруются различными целыми числами от 1 до n. _Правильный_ порядок предполагает, что тома расставлены по возрастанию количества единичных бит в двоичном представлении их номеров, а если для нескольких томов это количество совпадает — по возрастанию номеров томов. Тома энциклопедии ставятся в шкаф начиная с верхней полки, слева направо. Том ставится в следующий шкаф только в том случае, если предыдущий шкаф полностью заполнен. Вручную определять порядок томов оказалось утомительным даже для такого сильного математика, как Рудольф. Помогите ему написать программу, которая подскажет, как расставить тома энциклопедии в конкретном шкафу. Первая строка содержит целые числа n, l и k (1 ≤ n ≤ 1000, 1 ≤ l ≤ 100, 1 ≤ k ≤ 100) — соответственно количество томов энциклопедии, количество полок в одном шкафу и количество томов, которые умещаются на одной полке. Вторая строка содержит целое число m (1 ≤ m ≤ 1000) — номер шкафа, который интересует Рудольфа. Гарантируется, что шкаф m будет заполнен полностью или частично. Выведите одну или более строк, каждая из которых содержит номера томов энциклопедии, которые будут стоять в шкафу m, в «_правильном_» порядке. ## Входные Данные Первая строка содержит целые числа n, l и k (1 ≤ n ≤ 1000, 1 ≤ l ≤ 100, 1 ≤ k ≤ 100) — соответственно количество томов энциклопедии, количество полок в одном шкафу и количество томов, которые умещаются на одной полке. Вторая строка содержит целое число m (1 ≤ m ≤ 1000) — номер шкафа, который интересует Рудольфа. Гарантируется, что шкаф m будет заполнен полностью или частично. ## Выходные Данные Выведите одну или более строк, каждая из которых содержит номера томов энциклопедии, которые будут стоять в шкафу m, в «_правильном_» порядке. ## Примеры Входные данные10 2 32Выходные данные69107Входные данные6 2 21Выходные данные1243 [samples]
**Definitions** Let $ n, l, k \in \mathbb{Z}^+ $: number of volumes, shelves per cabinet, volumes per shelf. Let $ m \in \mathbb{Z}^+ $: target cabinet index. Let $ V = \{1, 2, \dots, n\} $ be the set of volume indices. For each volume $ i \in V $, define $ b(i) = \text{popcount}(i) $, the number of 1-bits in the binary representation of $ i $. Define the ordering $ \prec $ on $ V $: $ i \prec j $ if and only if $ b(i) < b(j) $, or $ b(i) = b(j) $ and $ i < j $. Let $ A = (a_1, a_2, \dots, a_n) $ be the sequence of volumes sorted by $ \prec $. Each cabinet holds $ l \cdot k $ volumes. The volumes in cabinet $ m $ are $ A_{(m-1) \cdot l \cdot k + 1}, A_{(m-1) \cdot l \cdot k + 2}, \dots, A_{\min(m \cdot l \cdot k, n)} $. **Objective** Output the volumes in cabinet $ m $, arranged in $ l $ rows (shelves), each row containing $ k $ volumes (or fewer for the last row if incomplete), in left-to-right order.
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": "CF10132C"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Теперь, когда количество шкафов посчитано, и Леонидас и Роберт смогли их изготовить, перед Рудольфом встала не менее важная и сложная проблема: такая важная энциклопедия, как Сверхбольшая Энциклопедия...",
      "is_translate": false,
      "language": "English"
    },
    {
      "statement_type": "Markdown",
      "content": "**Definitions**  \nLet $ n, l, k \\in \\mathbb{Z}^+ $: number of volumes, shelves per cabinet, volumes per shelf.  \nLet $ m \\in \\mathbb{Z}^+ $: target cabinet index.  \n\nLet $ V = \\{1, 2, \\dots, n\\} $ be ...",
      "is_translate": false,
      "language": "Formal"
    }
  ]
}
Full JSON Raw Segments