Universal Cup Judging System

Universal Cup

Süre Sınırı: 1.0 s Bellek Sınırı: 1024 MB Toplam puan: 100
İstatistikler

Nell'anno 2077 preparare problemi diventa semplice. I robot generano un problema impostando alcune operazioni casuali e poi lo risolvono. Chi prepara il problema deve solo controllare se il problema sia corretto oppure no.

Ecco un problema proveniente dal 2077:

Data una permutazione $p_1, p_2, \dots, p_n$, è garantito che $n$ è pari. Desideri ordinare la permutazione usando un solo tipo di operazione:

  • FakeSort(l,r): Devi garantire che $r - l + 1$ sia pari. Sia $k = r - l + 1$; allora i $k/2$ elementi più grandi e i $k/2$ elementi più piccoli nella sottosequenza contigua $p_l, p_{l+1}, \dots, p_r$ verranno ordinati indipendentemente. Cioè, siano $L_1, L_2, \dots, L_{k/2}$ gli indici dei $k/2$ numeri più grandi, e $S_1, S_2, \dots, S_{k/2}$ gli indici dei $k/2$ numeri più piccoli. Prima ordiniamo i numeri sugli indici $L_1 \sim L_{k/2}$, poi ordiniamo i numeri sugli indici $S_1 \sim S_{k/2}$.

Ecco un esempio concreto; supponiamo che la permutazione sia $p = \{2, 5, 7, 1, 8, 6, 4, 3\}$. Se chiamiamo FakeSort(2,7):

  • $k = r - l + 1 = 6$. La sottosequenza contigua $p_l, p_{l+1}, \dots, p_r$ è $\{5, 7, 1, 8, 6, 4\}$; ordineremo i $3$ numeri più grandi e i $3$ numeri più piccoli di questa sequenza in modo indipendente.
  • $p = \{2, 5, \mathbf{7}, 1, \mathbf{8}, \mathbf{6}, 4, 3\}$; i $3$ numeri più grandi sono in grassetto. Dopo l'ordinamento diventano $p = \{2, 5, \mathbf{6}, 1, \mathbf{7}, \mathbf{8}, 4, 3\}$.
  • $p = \{2, \mathbf{5}, 6, \mathbf{1}, 7, 8, \mathbf{4}, 3\}$; i $3$ numeri più piccoli sono in grassetto. Dopo l'ordinamento diventano $p = \{2, \mathbf{1}, 6, \mathbf{4}, 7, 8, \mathbf{5}, 3\}$.

Quindi $p = \{2, 5, 7, 1, 8, 6, 4, 3\}$ dopo FakeSort(2,7) diventa $\{2, 1, 6, 4, 7, 8, 5, 3\}$.

Usa non più di $114$ operazioni per ordinare la permutazione oppure determina che è impossibile. Si può dimostrare che, se una permutazione può essere ordinata con questa operazione, esiste un modo per farlo usando non più di $114$ operazioni.

Input

L'input contiene più casi di test. La prima riga dell'input contiene un intero $T$ ($1 \le T \le 10^3$), il numero di casi di test.

Per ciascun caso di test, la prima riga contiene un intero pari $n$ ($4 \le n \le 10^5$), la lunghezza della permutazione.

La seconda riga contiene $n$ interi $p_1, p_2, \dots, p_n$ ($1 \le p_i \le n$), la permutazione che devi ordinare. È garantito che $p$ sia una permutazione.

È garantito che la somma di $n$ su tutti i casi di test non superi $2 \times 10^5$.

Output

Per ciascun caso di test, se è impossibile ordinare la permutazione, stampa $-1$.

Altrimenti, stampa un intero $k$ ($0 \le k \le 114$), che indica il numero di operazioni utilizzate.

Nelle successive $k$ righe, stampa $l, r$ ($1 \le l \le r \le n$, $r - l + 1$ è pari) in ciascuna riga, per indicare l'esecuzione di FakeSort(l,r).

Esempi

Input di esempio 1

3
4
2 1 4 3
6
3 6 5 1 2 4
8
3 2 1 7 5 4 6 8

Output di esempio 1

1
1 4
-1
2
4 7
1 6

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1071EditorialOpenNew Editorial for Problem #15316ZnPdCoView

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.