#include using namespace std; int n,m,cnt,cur,cv,i,j,le[100100],ri[100100],x[100100],y[100100],q[100100],k[100100],a[100100],c[100100],r[100100]; pair b[100100]; char s[100100]; bool cmp(int i, int j) { return q[i]0; i&=i-1) r+=c[i]; return r; } int main() { scanf("%d",&n); scanf("%s",s); for (i=1; i<=n; i++) if (s[i-1]=='1') le[i]=i; else le[i]=le[i-1]; ri[n+1]=n+1; for (i=n; i>=0; i--) if (s[i-1]=='1') { b[cnt++]=make_pair(ri[i+1]-i,i); ri[i]=i; } else ri[i]=ri[i+1]; sort(b,b+cnt); reverse(b,b+cnt); scanf("%d",&m); for (i=0; icv) { modify(b[j].second,(b[j].first-1)/cv-a[b[j].second]); } else if (a[b[j].second]>0) { modify(b[j].second,-1); } else break; for (j=i; j=y[cur]) { r[cur]=(y[cur]-x[cur]-1)/cv; } else { int xx=ri[x[cur]]; int yy=le[y[cur]]; r[cur]=(xx-x[cur]-1)/cv+(y[cur]-yy-1)/cv; if (xx