#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Solution {
public:
int minSumAfterSplit(string s) {
int n = s.size();
vector<int> leftOnes(n, 0), rightZeros(n, 0);
leftOnes[0] = (s[0] == '1');
rightZeros[n - 1] = (s[n - 1] == '0');
for (int i = 1; i < n; ++i) {
leftOnes[i] = leftOnes[i - 1] + (s[i] == '1');
}
for (int i = n - 2; i >= 0; --i) {
rightZeros[i] = rightZeros[i + 1] + (s[i] == '0');
}
int minSum = min(leftOnes[n - 1], rightZeros[0]);
for (int i = 0; i < n - 1; ++i) {
minSum = min(minSum, leftOnes[i] + rightZeros[i + 1]);
}
return minSum;
}
};
int main() {
Solution sol;
string s = "011011";
int result = sol.minSumAfterSplit(s);
cout << "Minimum Sum: " << result << endl;
return 0;
}