3251: 三色排序

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:22 解决:14

题目描述

每个数字都是 0,1,2 中的一个,请将其中的一部分数字两两给定 n 个整数 a1, a2,·..,an,交换,使得结果是升序的,请问最少需要几次交换?

输入

第一行:单个整数表示 n 第二行:n 个整数表示 a1,a2,...,an

输出

单个整数:表示最少交换次数。 \begin{aligned} &\text{对于 }30\%\text{ 的数据,}1\leq n\leq100,0; &\text{对于 }60\%\text{ 的数据,}1\leq n\leq100,00; \\ &\text{对于 }100\%\text{ 的数据,}1\leq n\leq1,000,000; \\ &0\leq a_{i}\leq2 ; \end{aligned}

样例输入 复制

5
2 0 1 2 0

样例输出 复制

1