拯救

成绩 0 开启时间 2013年02月21日 星期四 23:02
折扣 0.8 折扣时间 2013年02月28日 星期四 23:02
允许迟交 关闭时间 2013年02月28日 星期四 23:02
输入文件 savey.in 输出文件 savey.out

【题目描述】

正义之士被恶魔抓了,被关在小黑屋里,无法继续他的正义事业,你决定去拯救他。
关正义之士的小黑屋迅速被你打开,可是正义之士却被恶魔用一把锁给锁住了。这把锁包含了N个小锁。只有打开前K-2个锁,且锁上第K-1个锁,才能改变第K个锁的状态(打开或锁上该锁),第1个锁可以任意改变状态,当第1个锁锁上时第2个锁就可以改变状态。
为了知道你到底是要留下来开锁,还是“走为上”,你需要知道到底需要多少次操作才能开锁(打开或锁上一把锁算一次操作,只有当N个小锁都被打开进才算开了锁)。
输入savey.in
第一行为一个N(小锁的个数,1<=N<=1000)。
第二行为n个整数a1,a2,...,an(每个都是0或者1),中间用单个空格隔开。如果是ai=1,表示第i个锁是锁着的,反之表示该锁已被打开。
输出savey.out
包括一个数,表示最少要操作的次数。
样例输入
4
1 0 1 0
样例输出
6
样例说明
1010-->1110-->0110-->0100-->1100-->1000-->0000
对于40%的数据,有N<=30
对于100%的数据,有N<=1000;