#include #include using namespace std; using namespace atcoder; using ll = long long; int op(int a,int b){ return min(a,b); } int e(){ return 1e9; } int mapping(int a,int b){ return a + b; } int composition(int a,int b){ return a + b; } int id(){ return 0; } int n,ans; string s; int main(){ cin >> n >> s; vector sum(n + 1,0); for(int i = 0; i < n; i++){ sum[i + 1] = sum[i] + 2 * (s[i] - '0') - 1; } lazy_segtree seg(sum); for(int i = n; i >= 2; i--){ int mi = seg.prod(0,i - 1); if(seg.get(i) < mi){ ans++; seg.apply(i, n + 1, 2); } } cout << ans << endl; }