二进制反转
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
问题描述
在一个数字竞技场中,参赛者们使用二进制数组作为他们的战斗阵型。每个参赛者的阵型由 和 组成, 代表防御, 代表攻击。为了在比赛中获得优势,参赛者们可以选择翻转阵型中的一个元素,以改变其战斗策略。翻转一个元素可以让他们在攻击和防御之间进行灵活调整,即让 变 , 变 。
参赛者们希望知道,在执行最多一次翻转操作后,他们的阵型可以产生的最大逆序对数量。逆序对的数量代表了他们阵型的混乱程度,混乱程度越高,意味着他们的战斗策略越难以预测,从而可能获得更大的胜利机会。
- 二进制数组是仅包含 和 的数组。
- 数组中的逆序对数量是指满足条件 且 的索引对 的数量。
输入格式
- 第一行:一个整数 ,表示二进制数组的长度。
- 第二行: 个整数 ,表示二进制数组的元素。
输出格式
输出一个整数,表示在执行最多一次翻转操作后,数组可以拥有的最大逆序对数量。
样例输入
5
1 0 1 0 1
样例输出
5
样例输入
4
1 1 0 0
样例输出
4
说明
样例1解释
翻转最后一个元素,得到 ,逆序对为 ,,,,。
样例2解释
不进行翻转操作,逆序对为 ,,,。
数据范围
对于 的数据,。
对于 的数据,。