问题 G: 【提高】吹扑克

问题 G: 【提高】吹扑克

题目描述

  圣诞节马上就要到了,小T正在埋头苦练圣诞晚会上的节目,这次小T给大家献上的是杂技吹扑克游戏,这个游戏首先请一位同学上台来在桌面上放置一排20张扑克牌,任何一张扑克牌都可以正面朝上或者正面朝下。小T用他宽大的嘴巴去吹扑克牌,目标是让所有的20张扑克牌都正面朝上。由于小T的嘴巴太宽以致于他对着某张扑克牌吹气时不光会将这张扑克牌吹翻过来,同时还会把这张扑克牌左右的两张牌也吹翻过来。当然如果小T对着第一张或最后一张扑克牌吹气的话吹翻过来的牌就只有2张,因为第一张扑克牌的左边没有牌,最后一张扑克牌的右边也没有牌。 给你20张扑克牌的初始状态(1表示正面朝下,0表示正面朝上),编一个程序求出将20张扑克牌都吹成正面朝上的最少吹气次数。

输入

仅有一行包含20个用空格隔开的整数,每个数为0或1。

输出

仅有一行包含一个整数,表示将20张扑克牌都吹成正面朝上的最少吹气次数。

样例输入输出

输入#1 复制
0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0
输出#1 复制
3

提示

【样例解释】
小T对第 4、9、11 三张扑克牌依次吹气,最终20张扑克牌都正面朝上。详细过程如下所示: 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 [初始状态]
0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 [吹过第4张扑克牌后的状态]
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 [吹过第9张扑克牌后的状态]
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [吹过第11张扑克牌后的状态]

序号 标题 作者 发表时间 费用 订购数 操作