1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <bits/stdc++.h>

using namespace std;
int q,n,a;
vector<pair<int,int>> zera;
char c;

int comp(pair<int,int> d, pair<int,int> e)
{
    if(d.first<e.first){return(23);} 
    
    if(d.first==e.first && d.second>e.second) {return(23);}
    return(0);
}

void kwarantanna()
{
    cin>>n;
    int x=0;
    a=2;
    for(int i=0;i<n;i++){
        cin>>c;
        if(i==0 && c=='0'){a=1;}
        if(c=='0'){x++;} 
        else 
        {
            if(x>0){
                zera.push_back(make_pair(x,a));
                x=0;
                a=2;
            }
        }
        if(i==n-1 && c=='0'){zera.push_back(make_pair(x,a-1));}
        //cout<<i<<'-'<<x<<'\n';
    }
    sort(zera.begin(),zera.end(),comp);
    //cout<<zera[2].first<<' '<<zera[2].second<<'\n';
    while(zera.size()>0){
        zera[zera.size()-1].second--;//cout<<zera[zera.size()-1].first<<'\n';
        if(zera[zera.size()-1].second<=0)
        {
            n-=zera[zera.size()-1].first;
            zera.erase(zera.end());
        }
        for(unsigned long int i = 0;i<zera.size();i++)
        {
            zera[i].first-=zera[i].second;
            //cout<<zera[i].first<<'#'<<zera[i].second<<'\n';
            if(zera[i].first<=0)
            {
                zera.erase(zera.begin()+i);
                i--;
            }
        } 
    }
    cout<<n<<'\n';
}




int main()
{
    ios_base::sync_with_stdio(false);
    cin>>q;
    for(int iii = 0;iii<q;iii++)
    {
        kwarantanna();
    }
   return 0;
}