算法实验作业3-1 照相问题
★问题描述:
四六级考试又要到了,所有参加考试的同学都需要照相。为了避免过分拥挤,
辅导员要求同学们分3 批照相。每位同学手里都有一张标明他照相批次的卡片,
其中1 表示第一批,2 表示第二批,3 表示第三批。初始时,所有同学随意着排
队,辅导员要求每位同学都必须按批次从小到大进行照相(先是第一批,然后是
第二批,最后是第三批),他沿着队伍从头到尾走一遍,把他认为排错的那些同
学卡片上的编号改掉,最终使得每一批次的同学都站在一起,例如11122222333
或者33322211111。辅导员并不反对一条前后颠倒的队伍,因为那样他可以让所
有的同学向后转,然后按正常顺序照相。
★实验任务:
对于给出的队伍,编程求出最少需要改变多少位同学卡片上的编号,使得队
伍满足要求。
★数据输入:
每组输入数据的第一行为一个整数N(1≤N≤30000),表示有N位同学,接下
来N行,每行一个整数Di,1≤Di≤3,表示第i个同学的卡片编号。
★结果输出:
对于每组输入数据输出一行一个整数,表示最少需要改变多少位同学卡片上
的编号,使得队伍满足要求。
输入示例1 输出示例1
5           1
1
3
2
1
1

输入示例2 输出示例2
5          1
1
2
3
3
1