... за прекрасные платформы Codeforces и Polygon. Также спасибо XTX Markets за поддержку Codeforces Global Rounds. И большое спасибо dario2994, который был автором Codeforces Global Round 11 и разрешил использовать свою задачу https://codeforces.com/contest/1427/problem/D. Да, это та же самая задача, если не считать того, что решение за $n$ операций — это довольно скучно, не находите?
Вам дана колода из $n$ карт, пронумерованных от $1$ до $n$ (не обязательно в порядке возрастания). Вам нужно отсортировать колоду, повторяя следующую операцию.
Выберите $2 \le k \le n$ и разбейте колоду на $k$ непустых последовательных частей $D_1, D_2, \dots, D_k$ ($D_1$ содержит первые $|D_1|$ карт колоды, $D_2$ содержит следующие $|D_2|$ карт и так далее). Затем измените порядок частей на обратный, преобразуя колоду в $D_k, D_{k-1}, \dots, D_2, D_1$ (таким образом, первые $|D_k|$ карт новой колоды — это $D_k$, следующие $|D_{k-1}|$ карт — это $D_{k-1}$ и так далее). Внутренний порядок карт в каждой пачке $D_i$ при выполнении операции не меняется.
Вам нужно получить отсортированную колоду (то есть колоду, где первая карта — $1$, вторая — $2$ и так далее), выполнив не более $120$ операций. Можно доказать, что отсортировать колоду за не более чем $120$ операций при данных ограничениях всегда возможно.
Примеры операции: ниже приведены три примера корректных операций (на трех колодах разного размера).
- Если колода имеет вид $[3\ 6\ 2\ 1\ 4\ 5\ 7]$ (где $3$ — первая карта, а $7$ — последняя), мы можем применить операцию с $k = 4$ и $D_1 = [3\ 6]$, $D_2 = [2\ 1\ 4]$, $D_3 = [5]$, $D_4 = [7]$. В результате колода станет $[7\ 5\ 2\ 1\ 4\ 3\ 6]$.
- Если колода имеет вид $[3\ 1\ 2]$, мы можем применить операцию с $k = 3$ и $D_1 = [3]$, $D_2 = [1]$, $D_3 = [2]$. В результате колода станет $[2\ 1\ 3]$.
- Если колода имеет вид $[5\ 1\ 2\ 4\ 3\ 6]$, мы можем применить операцию с $k = 2$ и $D_1 = [5\ 1]$, $D_2 = [2\ 4\ 3\ 6]$. В результате колода станет $[2\ 4\ 3\ 6\ 5\ 1]$.
Входные данные
В первой строке входных данных содержится целое число $n$ ($1 \le n \le 20\,000$) — количество карт в колоде. Во второй строке содержатся $n$ целых чисел $c_1, c_2, \dots, c_n$ — карты в колоде. Первая карта — $c_1$, вторая — $c_2$ и так далее. Гарантируется, что для всех $i = 1, \dots, n$ существует ровно один $j \in \{1, \dots, n\}$ такой, что $c_j = i$.
Выходные данные
В первой строке выведите число $q$ выполненных вами операций ($0 \le q \le 120$). Затем выведите $q$ строк, каждая из которых описывает одну операцию. Для описания операции выведите в одной строке число $k$ — количество частей, на которые вы разбиваете колоду, а затем размеры этих $k$ частей: $|D_1|, |D_2|, \dots, |D_k|$. Должно выполняться условие $2 \le k \le n$, $|D_i| \ge 1$ для всех $i = 1, \dots, k$, и $|D_1| + |D_2| + \dots + |D_k| = n$. Можно доказать, что отсортировать колоду за не более чем $120$ операций при данных ограничениях всегда возможно. Если существует несколько способов отсортировать колоду, вы можете вывести любой из них. Заметьте, что минимизировать $q$ не требуется.
Примеры
Пример 1
4 3 1 2 4
2 3 1 2 1 2 1 3
Пример 2
6 6 5 4 3 2 1
1 6 1 1 1 1 1 1
Пример 3
1 1
0