#P577. 三色排序

三色排序

题目描述

给定 nn 个整数 a1,a2,,ana_1,a_2,\dots, a_n,每个数字都是 0,1,20,1,2 中的一个,请将其中的一部分数字两两交换,使得结果是升序的,请问最少需要几次交换?

输入格式

第一行:单个整数表示 nn 第二行:nn 个整数表示 a1,a2,,ana_1,a_2,\dots, a_n

输出格式

单个整数:表示最少交换次数。

5
2 0 1 2 0
1

样例解释 1

将第一个2与最后一个0交换即可

数据范围

  • 对于 30%30\% 的数据,1n5,0001\leq n\leq 5,000
  • 对于 60%60\% 的数据,1n100,0001\leq n\leq 100,000
  • 对于 100%100\% 的数据,1n1,000,0001\leq n\leq 1,000,000
  • 0ai20\leq a_i\leq 2