P0940

[Usaco2008 Feb]Eating Together麻烦的聚餐

[Usaco2008 Feb]Eating Together麻烦的聚餐

为了避免餐厅过于拥挤,FJ 要求奶牛分成 33 批就餐。每天晚饭前,奶牛会在餐厅门口排队。按照 FJ 的设想,第 11 批就餐的奶牛应排在队首,第 22 批排在中间,第 33 批排在队尾。

第 ii 头奶牛持有一张标明其就餐批次 DiD_i 的卡片。然而,尽管所有奶牛已经排成整齐的队伍,卡片上的批次编号却杂乱无章。

经过多次混乱的重新排队后,FJ 想出了一个更简单的办法:奶牛保持原位不动,他沿队伍从头到尾走一遍,修改部分奶牛卡片上的编号,使最终的编号序列按照 1,2,31,2,3 的顺序分组排列,例如 1,1,1,2,2,2,3,3,31,1,1,2,2,2,3,3,3。

FJ 也允许编号序列按照相反的 3,2,13,2,1 顺序排列,因为此时只需让所有奶牛向后转,便可以按照正常顺序进入餐厅。

FJ 想知道,为了使队伍满足上述要求,最少需要修改多少头奶牛卡片上的编号。修改过程中,所有奶牛都不会移动位置。

输入格式

第一行包含一个整数 NN,表示奶牛的数量。

接下来 NN 行,第 ii 行包含一个整数 DiD_i,表示第 ii 头奶牛卡片上的就餐批次编号。

输出格式

输出一个整数,表示使编号序列符合要求所需修改的最少卡片数量。

样例输入

5
1
3
2
1
1

样例输出

1

数据范围

  • 1≤N≤3×1041\le N\le 3\times 10^4;
  • 1≤Di≤31\le D_i\le 3。

来源与许可

本题为 USACO 2008 February 试题「麻烦的聚餐」,题面与测试数据整理自 BZOJ。

样例 1

输入

5
1
3
2
1
1

输出

1