Universal Cup Judging System

Universal Cup

时间限制: 4 s 内存限制: 2048 MB 总分: 100 难度: [显示] 可 Hack ✓
统计

Little Cyan Fish dispose d'une permutation $p_1, p_2, \ldots, p_n$ des entiers de $1$ à $n$ et, comme le suggère le titre du problème, il souhaite la trier par ordre croissant. Cette fois-ci, l'opération qu'il peut effectuer est la suivante.

  • En une opération, Little Cyan Fish peut choisir deux entiers $i$ et $j$ tels que $1 \le i < j \le n$ et échanger $p_i$ et $p_j$.

Mais voyons, tout le monde sait trier une permutation avec de simples échanges, ce n'est donc évidemment pas ce que l'on vous demande de faire. À la place, Little Cyan Fish définit la distance d'une opération comme étant $j - i$. Pour une séquence d'opérations qui trie la permutation, soit $a_d$ le nombre d'opérations de distance $d$, pour chaque $1 \le d < n$.

Parmi toutes les séquences finies d'opérations qui trient la permutation, Little Cyan Fish vous demande de trouver la séquence $(a_1, a_2, \ldots, a_{n-1})$ lexicographiquement minimale, et de construire une séquence d'au plus $5n$ opérations permettant de l'atteindre.

Entrée

Il y a plusieurs cas de test. La première ligne de l'entrée contient un seul entier $T$ ($1 \le T \le 10^6$), indiquant le nombre de cas de test.

Pour chaque cas de test, la première ligne contient un seul entier $n$ ($2 \le n \le 10^6$), indiquant la longueur de la permutation. La deuxième ligne contient $n$ entiers $p_1, p_2, \ldots, p_n$ ($1 \le p_i \le n$), indiquant la permutation. Il est garanti que $p$ est une permutation de longueur $n$.

Il est garanti que la somme de $n$ sur l'ensemble des cas de test ne dépasse pas $10^6$.

Sortie

Pour chaque cas de test, affichez la réponse au format suivant.

La première ligne de chaque cas de test doit contenir $n - 1$ entiers $a_1, a_2, \ldots, a_{n-1}$, la séquence lexicographiquement minimale.

La deuxième ligne doit contenir un seul entier $k$ ($0 \le k \le 5n$), le nombre d'opérations dans votre séquence.

Chacune des $k$ lignes suivantes doit contenir deux entiers $i$ et $j$ ($1 \le i < j \le n$), les indices choisis lors de l'opération correspondante. Les opérations, effectuées dans l'ordre donné, doivent trier la permutation fournie en entrée, et pour chaque $1 \le d < n$, exactement $a_d$ opérations doivent avoir une distance égale à $d$.

On peut montrer qu'il existe toujours une séquence optimale d'au plus $5n$ opérations. S'il existe plusieurs séquences d'opérations valides, vous pouvez afficher n'importe laquelle d'entre elles.

Exemples

Entrée 1

3
3
3 2 1
4
2 1 3 4
4
1 3 2 4

Sortie 1

0 1
1
1 3
0 1 2
3
1 4
2 4
1 4
0 3 2
5
1 3
1 4
2 4
1 4
1 3

Remarque

Dans le premier cas de test de l'exemple, Little Cyan Fish échange les positions $1$ et $3$. Cela trie la permutation en utilisant une opération de distance $2$.

Dans le deuxième cas de test de l'exemple, une séquence optimale est $(1, 4)$, $(2, 4)$, $(1, 4)$. Les distances sont $3$, $2$ et $3$, de sorte que la séquence résultante est $(0, 1, 2)$.

Dans le troisième cas de test de l'exemple, une séquence optimale est $(2, 4)$, $(1, 4)$, $(1, 3)$, $(1, 4)$, $(2, 4)$. Ses nombres d'opérations par distance sont $(0, 3, 2)$.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.