问题 2187 --加菲猫就餐(dinner.cpp)

2187: 加菲猫就餐(dinner.cpp)★★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 222  解决: 128
[提交][状态][命题人:]

题目描述

为了避免餐厅过分拥挤,水明要求加菲猫们分2批就餐。每天晚饭前,加菲猫们都会在餐厅前排队入内,按水明的设想,所有第2批就餐的加菲猫排在队尾,队伍的前半部分则由设定为第1批就餐的加菲猫占据。由于加菲猫们不理解水明的安排,晚饭前的排队成了一个大麻烦。 第i头加菲猫有一张标明她用餐批次D_i(1 <= D_i <= 2)的卡片。虽然所有N头加菲猫排成了很整齐的队伍,但谁都看得出来,卡片上的号码是完全杂乱无章的。 在若干次混乱的重新排队后,水明找到了一种简单些的方法:加菲猫们不动,他沿着队伍从头到尾走一遍,把那些他认为排错队的加菲猫卡片上的编号改掉,最终得到一个他想要的每个组中的加菲猫都站在一起的队列,例如112222或111122。有的时候,水明会把整个队列弄得只有1组加菲猫(比方说,1111或222)。 你也晓得,水明是个很懒的人。他想知道,如果他想达到目的,那么他最少得改多少头加菲猫卡片上的编号。所有加菲猫在水明改卡片编号的时候,都不会挪位置。

输入

输入文件为dinner.in

第1行: 1个整数:N(1 <= N <= 30000)  

第2..N+1行:1个整数,为第i头加菲猫的用餐批次D_i

输出

输出文件为dinner.out

一行: 输出1个整数,为水明最少要改几头加菲猫卡片上的编号,才能让编号变成他设想中的样子。

样例输入
Copy
7
2
1
1
1
2
2
1
样例输出
Copy
2

提示

普及模拟赛2018-9-C

来源

[提交][状态]