Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<iostream>
- #include<vector>
- #include<csignal>
- #include<algorithm>
- #include<string>
- #include<cstring>
- #include<vector>
- #include<math.h>
- #include<map>
- #define FOR(i,n) for(int (i)=0;(i)<(n);(i)++)
- #define REP(i,a,b) for(int (i)=(a);(i)<(b);(i)++)
- #define REV(i,n) for(int (i)=(n)-1;(i)>=0;(i)--)
- #define GI ({int t;scanf("%d",&t);t;})
- #define GL ({int64 t;scanf("%ld",&t);t;})
- #define PB push_back
- typedef long long int int64;
- using namespace std;
- int main(){
- char s[1000010];
- while(scanf("%s",s)) {
- int l = strlen(s), start=-1;
- vector<int> cc;
- FOR(i,l) if(s[i]=='1') { start=i; cc.PB(1); break; }
- vector<int>::iterator it;
- if(start == -1) {
- cout<<0<<endl;
- continue;
- }
- REP(i,start,l) {
- it=cc.end()-1;
- bool odd = 1 == (*it)%2, zero = '0' == s[i];
- if(odd && zero) cc.PB((*it)+1);
- if( !odd && !zero) cc.PB((*it)+1);
- it=cc.end()-1;
- }
- printf("%d\n",*it);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment