UOJ Logo FLYIOI UOJ

FLYIOI

#5. 三元排序

问题描述

一次交换操作是指将数列中的两个数位置对调。给出一个只有1、2、3三个元素的数列,你需要通过有限次交换使数列中的数从小到大排列。请求出最少需要的交换次数。

输入格式

第一行读入一个数N,它代表数列的长度。
以下N行每行一个数。每个数都只可能是1、2、3中的一个。

输出格式

最少的交换次数。

样例输入

9
2
2
1
3
3
3
2
3
1

样例输出

4

时间限制

各测试点1秒

内存限制

你的程序将被分配128MB的运行空间

数据规模

对于50%的数据,N<=100;
对于100%的数据,N<=100000。

提交

USACO