#include<bits/stdc++.h>
using namespace std;
long long n,v,a,b,c,d,e;
int main(){
    scanf("%d",&n);
    while(n--){
        scanf("%d",&v);
        a+=v;//记录前面全清零需要的花费
        b=min(b+(v?v%2:2),a);//记录从清零之后全部变为偶数需要的花费
        c=min(c+!(v%2),b);//记录全是偶数之后全部变为奇数需要的花费
        d=min(d+(v?v%2:2),c);//记录全是奇数之后全部变为偶数需要的花费
        e=min(e+v,d);//记录全是偶数之后全部清零需要的花费
        printf("%lld",e);
    }
}

最新文章

  1. js图片前端预览之 filereader 和 window.URL.createObjectURL
  2. [mobile开发碎碎念]手机页面上显示PDF文件
  3. 百度云 + GIT
  4. jQuery之ajax的跨域获取数据
  5. Show Linux Package Sort By Size
  6. C#DataGridView 美化
  7. GCC --verbose选项, -lpthread 和-pthread的区别
  8. subline text 3的模版设置
  9. 苹果iOS苹果公司的手机用户都有权索赔
  10. linux c中select使用技巧
  11. hdu 6047 Maximum Sequence(贪心)
  12. java之基础数据类型学习————(一)
  13. 微信小程序基础之在微信上显示和体验小程序?
  14. 远离压力,提高效率——Getting things done读书笔记
  15. 安装rlwrap-0.37.tar.gz
  16. node.js设置跨域
  17. Unity3d项目入门之Rolling Ball
  18. web应用与web框架
  19. HTTP 错误 500.19 配置文件错误 ( 0x8007000d,0x80070032)
  20. 转 Katana 项目入门

热门文章

  1. java:练习超市卖场
  2. jsoup抓取网页内容
  3. Php处理大文件-分割和合并
  4. Python中深拷贝与浅拷贝区别
  5. I.MX6 USB Camera
  6. Qt Quick中的信号与槽
  7. Operating System-Thread(1)What and Why Thread &amp;&amp;进程和线程的对比
  8. Guice总结
  9. Git 系列之tag的用法---为你的代码标记版本号
  10. Kill掉MySQL中所有sleep的client线程 (转)