func_code_string: #include <bits/stdc++.h>   using namespace std;   long long zero = 0;   long long one = 1;   long long gcd(long long a, long long b) {     if (b == 0) return a;     return gcd(b, a % b);   }   long long lcm(long long a, long long b) { return (a / gcd(a, b) * b); }   long long expo(long long x, long long y) {     long long res = 1;     x = x % 1000000007;     while (y > 0) {       if (y & 1) res = (1ll * res * x) % 1000000007;       y = y >> 1;       x = (1ll * x * x) % 1000000007;     }     return res;   }   long long ncr(long long n, long long r) {     long long res = 1;     if (r > n - r) r = n - r;     for (long long i = 0; i < r; i++) {       res *= n - i;       res /= i + 1;     }     return res;   }   long long max(long long a, long long b) { return (a > b) ? a : b; }   bool prime(long long n) {     long long i;     for (i = 2; i <= sqrt(n); i++) {       if (n % i == 0) return false;     }     return true;   }   bool sortbysec(const pair<long long, long long> &a,                  const pair<long long, long long> &b) {     if (a.second == b.second) return a.first < b.first;     return (a.second < b.second);   }   long long rr[] = {       0, 1, 1, 1, 0, -1, -1, -1,   };   long long cc[] = {1, 1, 0, -1, -1, -1, 0, 1};   signed main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     ;     long long n;     cin >> n;     string s;     cin >> s;     if (n == 1) return cout << 0, 0;     long long dp[2][n];     memset(dp, 0, sizeof(dp));     dp[0][0] = (s[0] ==  0 );     dp[1][0] = (s[0] ==  1 );     for (long long i = 1; i < n; i++) {       dp[1][i] = dp[0][i - 1] + (s[i] ==  1 );       dp[0][i] = dp[1][i - 1] + (s[i] ==  0 );     }     cout << min(dp[0][n - 1], dp[1][n - 1]);   }   