#P9843. [ICPC2021 Nanjing R] Paimon Sorting
[ICPC2021 Nanjing R] Paimon Sorting
题目描述
Paimon just invents a new sorting algorithm which looks much like , with a few differences. It accepts a -indexed sequence of length and sorts it. Its pseudo-code is shown below.
// The Sorting Algorithm
SORT(A)
for i from 1 to n // n is the number of elements if A
for j from 1 to n
if a[i] < a[j] // a[i] is the i-th element in A
Swap a[i] and a[j]
If you don't believe this piece of algorithm can sort a sequence it will also be your task to prove it. Anyway here comes the question:
Given an integer sequence of length , for each of its prefix of length (that is, for each , consider the subsequence ), count the number of swaps performed if we call .
输入格式
There are multiple test cases. The first line of the input contains an integer indicating the number of test cases. For each test case:
The first line contains an integer () indicating the length of the sequence.
The second line contains integers () indicating the given sequence.
It's guaranteed that the sum of of all test cases will not exceed .
输出格式
For each test case output one line containing integers separated by a space, where is the number of swaps performed if we call .
Please, DO NOT output extra spaces at the end of each line or your solution may be considered incorrect!
题目大意
给出一个排序算法(用伪代码表示):
// 排序算法
SORT(A)
for i from 1 to n // n 是序列 A 的元素个数
for j from 1 to n
if a[i] < a[j] // a[i] 是序列 A 的第 i 个元素
Swap a[i] and a[j]
请你算出对于一个序列 的所有前缀 (), 中的交换(Swap)操作将会被执行几次。
3
5
2 3 2 1 5
3
1 2 3
1
1
0 2 3 5 7
0 2 4
0