QOJ.ac

QOJ

Límite de tiempo: 1.0 s Límite de memoria: 512 MB Puntuación total: 100 Hackeable ✓

#17774. Porządkowanie roczników

Estadísticas

Na półce ustawiono $n$ roczników. Początkowo stopień uszkodzenia $i$-tego rocznika ($1 \le i \le n$) wynosi $a_i$.

W każdym ruchu należy najpierw wybrać pozycję $p$ ($1 \le p \le n - 1$), a następnie przenieść $(p+1)$-szy rocznik przed $p$-ty rocznik. Po wykonaniu ruchu stopień uszkodzenia przenoszonego rocznika wzrośnie o $1$.

Ze względu na ograniczony czas, można wykonać łącznie nie więcej niż $n^2 - n$ ruchów. Jako jeden z uczestników przeglądających roczniki, musisz pomóc małemu S zaplanować konkretny zestaw ruchów tak, aby ostatecznie stopnie uszkodzenia roczników na półce były ściśle rosnące od lewej do prawej.

Wejście

Każdy zestaw danych zawiera wiele przypadków testowych. Pierwsza linia wejścia zawiera liczbę całkowitą $T$ ($1 \le T \le 10$), oznaczającą liczbę przypadków testowych. Dla każdego przypadku testowego: Pierwsza linia zawiera liczbę całkowitą $n$ ($2 \le n \le 500$), oznaczającą liczbę roczników. Druga linia zawiera $n$ liczb całkowitych $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$), oznaczających początkowe stopnie uszkodzenia każdego z roczników.

Wyjście

Dla każdego przypadku testowego, jeśli istnieje wykonalny plan ruchów: W pierwszej linii wypisz liczbę całkowitą nieujemną $k$ ($0 \le k \le n^2 - n$), oznaczającą liczbę ruchów. W drugiej linii wypisz $k$ liczb całkowitych $p_1, p_2, \dots, p_k$ ($1 \le p_i \le n - 1$), oznaczających wybrane pozycje w każdym ruchu.

Jeśli nie jest możliwe uzyskanie ściśle rosnącego ciągu stopni uszkodzenia od lewej do prawej, wypisz w jednej linii liczbę $-1$.

Przykład

Wejście 1

3
2
1 2
2
2 1
3
4 5 1

Wyjście 1

0

-1
2
2 1

Uwagi

Dla pierwszego przypadku testowego, początkowo stopnie uszkodzenia roczników na półce są już ściśle rosnące.

Dla drugiego przypadku testowego można udowodnić, że nie da się w ciągu $n^2 - n$ ruchów sprawić, aby stopnie uszkodzenia roczników na półce były ściśle rosnące od lewej do prawej.

Dla trzeciego przypadku testowego, przykładowy wykonalny plan ruchów wygląda następująco: Pierwszy ruch: wybierz pozycję 2, stopnie uszkodzenia roczników zmieniają się na $[4, 2, 5]$; Drugi ruch: wybierz pozycję 1, stopnie uszkodzenia roczników zmieniają się na $[3, 4, 5]$.

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.