CF1760E.Binary Inversions

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Binary Inversions

You are given a binary array^{\dagger} of length nn. You are allowed to perform one operation on it at most once. In an operation, you can choose any element and flip it: turn a 00 into a 11 or vice-versa.

What is the maximum number of inversions^{\ddagger} the array can have after performing at most one operation?

^\dagger A binary array is an array that contains only zeroes and ones.

^\ddagger The number of inversions in an array is the number of pairs of indices i,ji,j such that i<ji \lt j and ai>aja_i \gt a_j.

Input

The input consists of multiple test cases. The first line contains an integer tt (1t1041 \leq t \leq 10^4) — the number of test cases. The description of the test cases follows.

The first line of each test case contains an integer nn (1n21051 \leq n \leq 2\cdot10^5) — the length of the array.

The following line contains nn space-separated positive integers a1a_1, a2a_2,..., ana_n (0ai10 \leq a_i \leq 1) — the elements of the array.

It is guaranteed that the sum of nn over all test cases does not exceed 21052\cdot10^5.

Output

For each test case, output a single integer  — the maximum number of inversions the array can have after performing at most one operation.

Note

For the first test case, the inversions are initially formed by the pairs of indices (1,21, 2), (1,41, 4), (3,43, 4), being a total of 33, which already is the maximum possible.

For the second test case, the inversions are initially formed by the pairs of indices (2,32, 3), (2,42, 4), (2,62, 6), (5,65, 6), being a total of four. But, by flipping the first element, the array becomes 1,1,0,0,1,0{1, 1, 0, 0, 1, 0}, which has the inversions formed by the pairs of indices (1,31, 3), (1,41, 4), (1,61, 6), (2,32, 3), (2,42, 4), (2,62, 6), (5,65, 6) which total to 77 inversions which is the maximum possible.

Samples

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

在线编程 IDE

建议全屏模式获得最佳体验