#4658. 最少交换

最少交换

题目描述

给定 nn 个整数 a1,a2,dots,ana_1, a_2, dots, a_n,每个数字都是 0,1,20, 1, 2 中的一个。

可以不断交换这个序列中的任意两个数,从而让这个序列成为单调不递减。

请问最少需要几次交换?

输入格式

第一行输入一个整数 nn

第二行输入 nn 个整数,表示 a1,a2,dots,ana_1, a_2, dots, a_n

输出格式

输出一个整数,表示最少交换次数。

样例

5
2 0 1 2 0
1
15
2 0 2 0 2 0 0 2 0 0 2 0 0 1 1
6
17
2 1 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0
6
3
2 0 1
2

提示

样例 1 解释:将第一个 22 与最后一个 00 交换即可。

数据范围

  • 对于 30%30\% 的数据,1n50001 \le n \le 5000
  • 对于 60%60\% 的数据,1n1051 \le n \le 10^5
  • 对于 100%100\% 的数据,1n1061 \le n \le 10^60Ai20 \le A_i \le 2