一行有n个格子,格子有3种状态,空格、红色、绿色,分别用0、1、2表示,例如下面是一个n=5的例子
{1,2,0,1,2}:

现在有2种移动操作:
l 移:空格可以和相邻的颜色交换
l 跳:空格可以和隔一个格子的颜色交换
现在的任务是,使用上面的操作把红色全部移动到最右边,把绿色全部移动到最左边。例如:

现在要求你计算完成任务需要的最少的操作次数是多少。
输入格式
第一行1个正整数n,范围[4,10]。
第二行n个数,都是0、1或2。保证有且只有一个0。
输出格式
一个整数,答案。
输入/输出例子1
输入:
5
1 2 0 1 2
输出:
7
注:题目里的图示操作了8次,不是最优操作。
求C++code!!!