typedef long long ll; #include using namespace std; int main() { string s; std::cin >> s; ll n = s.length(); // i桁目までみたときのコスト、jは繰り上がっているかフラグ vector> dp(n+1,vector(2,0)); dp[0][0]=dp[0][1]=(s[n-1]=='1'); for (int i = 1; i < n; i++) { ll now = n-i-1; if(s[now]=='1'){ dp[i][1] = min(dp[i-1][0]+1,dp[i-1][1]); dp[i][0] = dp[i-1][0]+1; }else{ dp[i][1] = dp[i-1][1]+1; dp[i][0] = min(dp[i-1][0],dp[i-1][1]+1); } } std::cout << min(dp[n-1][1]+1,dp[n-1][0]) << std::endl; }