Simply Strange Sort
Contest: Codeforces Round 740 (Div. 2, based on VK Cup 2021 - Final (Engine))
Difficulty rating: 800
Tags: brute force, implementation, sortings

You have a permutation: an array $$$a = [a_1, a_2, \ldots, a_n]$$$ of distinct integers from $$$1$$$ to $$$n$$$. The length of the permutation $$$n$$$ is odd.

Consider the following algorithm of sorting the permutation in increasing order.

A helper procedure of the algorithm, $$$f(i)$$$, takes a single argument $$$i$$$ ($$$1 \le i \le n-1$$$) and does the following. If $$$a_i > a_{i+1}$$$, the values of $$$a_i$$$ and $$$a_{i+1}$$$ are exchanged. Otherwise, the permutation doesn't change.

The algorithm consists of iterations, numbered with consecutive integers starting with $$$1$$$. On the $$$i$$$-th iteration, the algorithm does the following:

- if $$$i$$$ is odd, call $$$f(1), f(3), \ldots, f(n - 2)$$$;
- if $$$i$$$ is even, call $$$f(2), f(4), \ldots, f(n - 1)$$$.

It can be proven that after a finite number of iterations the permutation will be sorted in increasing order.

After how many iterations will this happen for the first time?

Input format:
Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 100$$$). Description of the test cases follows.

The first line of each test case contains a single integer $$$n$$$ ($$$3 \le n \le 999$$$; $$$n$$$ is odd) — the length of the permutation.

The second line contains $$$n$$$ distinct integers $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le n$$$) — the permutation itself.

It is guaranteed that the sum of $$$n$$$ over all test cases does not exceed $$$999$$$.

Output format:
For each test case print the number of iterations after which the permutation will become sorted in increasing order for the first time.

If the given permutation is already sorted, print $$$0$$$.

Constraints:
Time limit: 2.0 s
Memory limit: 512.0 MB

Note:
In the first test case, the permutation will be changing as follows:

- after the $$$1$$$-st iteration: $$$[2, 3, 1]$$$;
- after the $$$2$$$-nd iteration: $$$[2, 1, 3]$$$;
- after the $$$3$$$-rd iteration: $$$[1, 2, 3]$$$.

In the second test case, the permutation will be changing as follows:

- after the $$$1$$$-st iteration: $$$[4, 5, 1, 7, 2, 3, 6]$$$;
- after the $$$2$$$-nd iteration: $$$[4, 1, 5, 2, 7, 3, 6]$$$;
- after the $$$3$$$-rd iteration: $$$[1, 4, 2, 5, 3, 7, 6]$$$;
- after the $$$4$$$-th iteration: $$$[1, 2, 4, 3, 5, 6, 7]$$$;
- after the $$$5$$$-th iteration: $$$[1, 2, 3, 4, 5, 6, 7]$$$.

In the third test case, the permutation is already sorted and the answer is $$$0$$$.

Example input:
3
3
3 2 1
7
4 5 7 1 3 2 6
5
1 2 3 4 5

Example output:
3
5
0

Editorial:
The described sorting algorithm is similar to Odd-even sort.
In this problem, it's enough to carefully implement the process described in the problem statement. Here is one sample implementation in C++:
To estimate the complexity of this solution, we need to know the maximum number of iterations required to sort a permutation of length $$$n$$$. It turns out that this number is equal to exactly $$$n$$$, thus the complexity of the algorithm is $$$O(n^2)$$$. This is intuitive because the algorithm looks similar to bubble sort that requires $$$n$$$ iterations too, or you can directly check that sorting $$$[n, n-1, \ldots, 1]$$$ requires $$$n$$$ iterations and reason that "more sorted" sequences can't require more iterations than "less sorted" sequences, and $$$[n, n-1, \ldots, 1]$$$ is naturally the "least sorted" sequence of them all. For a formal proof see e.g. the linked Wikipedia page. The proof also follows from the editorial of problem F in Div. 1. If you have a simpler proof, please share in comments!