Kotlin Heroes: Episode 1 |
---|
Закончено |
Поликарп разрабатывает метод передачи $$$n$$$ числовых последовательностей по сети. Этот метод должен поддерживать передачу произвольного количества числовых последовательностей, последовательности могут иметь разные длины. Последовательности содержат произвольные неотрицательные целые числа.
Поликарп разработал следующий метод кодирования:
Например, если требуется закодировать три последовательности $$$[3, 1, 4]$$$, $$$[2, 7]$$$ и $$$[1, 2, 3, 4]$$$, то последовательность действий будет такая:
Ваша задача — реализовать декодирование по заданному результату кодирования.
В первой строке записано целое число $$$m$$$ ($$$1 \le m \le 3\cdot10^5$$$) — длина результата кодирования. Далее во второй строке записан результат кодирования в виде последовательности целых чисел $$$b_1, b_2, \dots, b_m$$$ ($$$-1 \le b_i \le 100$$$).
Гарантируется, что в последовательностях до кодирования были только неотрицательные целые числа от $$$0$$$ до $$$100$$$, что вам в самом деле задан результат корректного кодирования (иными словами, гарантируется, что ответ существует). Возможно, что одна или несколько последовательностей до кодирования были пусты.
Выведите $$$n$$$, где $$$n$$$ — количество закодированных последовательностей. Далее выведите $$$n$$$ строк в формате $$$k_i, a_{i1}, a_{i2}, \dots, a_{ik_i}$$$, где $$$k_i$$$ — длина $$$i$$$-й последовательности, а $$$a_{i1}, a_{i2}, \dots, a_{ik_i}$$$ — её элементы. Числа в строках разделяйте пробелами. Обратите внимание, что кодирование устроено таким образом, что ответ всегда определён однозначно.
12 3 2 1 1 7 2 4 -1 3 -1 4 -1
3 3 3 1 4 2 2 7 4 1 2 3 4
6 2 -1 2 -1 3 -1
3 1 2 0 2 2 3
Название |
---|