CF1760E.Binary Inversions
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a binary array † of length n . 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 0 into a 1 or vice-versa.
What is the maximum number of inversions ‡ the array can have after performing at most one operation?
† A binary array is an array that contains only zeroes and ones.
‡ The number of inversions in an array is the number of pairs of indices i,j such that i<j and ai>aj .
输入格式
The input consists of multiple test cases. The first line contains an integer t ( 1≤t≤104 ) — the number of test cases. The description of the test cases follows.
The first line of each test case contains an integer n ( 1≤n≤2⋅105 ) — the length of the array.
The following line contains n space-separated positive integers a1 , a2 ,..., an ( 0≤ai≤1 ) — the elements of the array.
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105 .
输出格式
For each test case, output a single integer — the maximum number of inversions the array can have after performing at most one operation.
输入输出样例
输入#1
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
输出#1
3 7 1 13 2
说明/提示
For the first test case, the inversions are initially formed by the pairs of indices ( 1,2 ), ( 1,4 ), ( 3,4 ), being a total of 3 , which already is the maximum possible.
For the second test case, the inversions are initially formed by the pairs of indices ( 2,3 ), ( 2,4 ), ( 2,6 ), ( 5,6 ), being a total of four. But, by flipping the first element, the array becomes 1,1,0,0,1,0 , which has the inversions formed by the pairs of indices ( 1,3 ), ( 1,4 ), ( 1,6 ), ( 2,3 ), ( 2,4 ), ( 2,6 ), ( 5,6 ) which total to 7 inversions which is the maximum possible.