fork download
  1. #include<stdio.h>
  2. int n;
  3. char a[300009];
  4. int d[300009][2];
  5. int maxx(int p,int q){
  6. return p<q?q:p;
  7. }
  8. int main(){
  9. int i,j,k;
  10. scanf("%d",&n);
  11. scanf("%s",&a[1]);
  12. printf("%s\n",&a[1]);
  13. for(i=1;i<=n;i++){
  14. if(a[i]=='1'){
  15. d[i][0]=maxx(d[i-1][0],d[i-1][1]);
  16. d[i][1]=d[i-1][0]+1;
  17. }
  18. else if(a[i]=='0'){
  19. d[i][0]=maxx(d[i-1][0],d[i-1][1]);
  20. d[i][1]=-1000000;
  21. }else{
  22. d[i][0]=-1000000;
  23. d[i][1]=d[i-1][0];
  24. }
  25. printf("%d : %d %d\n",i,d[i][0],d[i][1]);
  26. }
  27. int res=maxx(d[n][0],d[n][1]);
  28. res=maxx(res,0);
  29. printf("%d",res);
  30. }
Success #stdin #stdout 0.01s 5320KB
stdin
7
1112111
stdout
1112111
1 : 0 1
2 : 1 1
3 : 1 2
4 : -1000000 1
5 : 1 -999999
6 : 1 2
7 : 2 2
2