boopathi

PEBBLES

Oct 18th, 2012
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<iostream>
  3. #include<vector>
  4. #include<csignal>
  5. #include<algorithm>
  6. #include<string>
  7. #include<cstring>
  8. #include<vector>
  9. #include<math.h>
  10. #include<map>
  11. #define FOR(i,n) for(int (i)=0;(i)<(n);(i)++)
  12. #define REP(i,a,b) for(int (i)=(a);(i)<(b);(i)++)
  13. #define REV(i,n) for(int (i)=(n)-1;(i)>=0;(i)--)
  14. #define GI ({int t;scanf("%d",&t);t;})
  15. #define GL ({int64 t;scanf("%ld",&t);t;})
  16. #define PB push_back
  17. typedef long long int int64;
  18. using namespace std;
  19.  
  20. int main(){
  21.     char s[1000010];
  22.     while(scanf("%s",s)) {
  23.         int l = strlen(s), start=-1;
  24.         vector<int> cc;
  25.         FOR(i,l) if(s[i]=='1') { start=i; cc.PB(1); break; }
  26.         vector<int>::iterator it;
  27.         if(start == -1) {
  28.             cout<<0<<endl;
  29.             continue;
  30.         }
  31.         REP(i,start,l) {
  32.             it=cc.end()-1;
  33.             bool odd = 1 == (*it)%2, zero = '0' == s[i];
  34.             if(odd && zero) cc.PB((*it)+1);
  35.             if( !odd && !zero) cc.PB((*it)+1);
  36.             it=cc.end()-1;
  37.         }
  38.         printf("%d\n",*it);
  39.     }
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment