#include<iostream>
#include<stdio.h>
#include<string.h>
#include<malloc.h>
using namespace std;
char s[30009];
struct seg_node
{
int nol;
int ncr;
}st[100009];
seg_node *merge(seg_node *l,seg_node *r)
{
seg_node *rt=new seg_node();
int k1=l->ncr - r->nol;
int k2,k3;
if(k1>0)
{
k3=k1;
k2=0;
}
else
{
k2=-k1;
k3=0;
}
rt->nol=l->nol+k2;
rt->ncr=k3+r->ncr;
return rt;
}
void init(int idx,int l,int r)
{
if(l==r)
{
if(s[l]=='(')
{
st[idx].nol=0;
st[idx].ncr=1;
}
else if(s[r]==')')
{
st[idx].nol=1;
st[idx].ncr=0;
}
return ;
}
int mid=(l+r)/2;
init(2*idx,l,mid);
init(2*idx+1,mid+1,r);
seg_node *sn=merge(&st[2*idx],&st[2*idx+1]);
st[idx].ncr=sn->ncr;
st[idx].nol=sn->nol;
free(sn);
}
void update(int idx,int l,int r,int k)
{
if(l==r && l==k)
{
if(s[k]==')')
{
s[k]='(';
st[idx].nol=0;
st[idx].ncr=1;
}
else
{
s[k]=')';
st[idx].nol=1;
st[idx].ncr=0;
}
return ;
}
int mid=(l+r)/2;
if(k<=mid) update(2*idx,l,mid,k);
else if(k>mid) update(2*idx+1,mid+1,r,k);
seg_node *sn=merge(&st[2*idx],&st[2*idx+1]);
st[idx].ncr=sn->ncr;
st[idx].nol=sn->nol;
free(sn);
}
void check()
{
if(st[1].nol==0 && st[1].ncr==0)
{
printf("YES\n");
return;
}
printf("NO\n");
return ;
}
int main()
{
int t=10,n,q,k,i=0;;
while(t--)
{
scanf("%d",&n);
scanf("%s",s+1);
i++;
printf("Test %d:\n",i);
if(n%2==0)
init(1,1,n);
scanf("%d",&q);
while(q--)
{
scanf("%d",&k);
if(n%2)
{
printf("NO\n");
continue;
}
if(k==0)
check();
else
update(1,1,n,k);
}
if(t==0)
break;
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPHN0cmluZy5oPgojaW5jbHVkZTxtYWxsb2MuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2hhciBzWzMwMDA5XTsKc3RydWN0IHNlZ19ub2RlCnsKICAgIGludCBub2w7CiAgICBpbnQgbmNyOwp9c3RbMTAwMDA5XTsKc2VnX25vZGUgKm1lcmdlKHNlZ19ub2RlICpsLHNlZ19ub2RlICpyKQp7CiAgICBzZWdfbm9kZSAqcnQ9bmV3IHNlZ19ub2RlKCk7CiAgICBpbnQgazE9bC0+bmNyIC0gci0+bm9sOwogICAgaW50IGsyLGszOwogICAgaWYoazE+MCkKICAgIHsKICAgICAgICBrMz1rMTsKICAgICAgICBrMj0wOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGsyPS1rMTsKICAgICAgICBrMz0wOwogICAgfQogICAgcnQtPm5vbD1sLT5ub2wrazI7CiAgICBydC0+bmNyPWszK3ItPm5jcjsKICAgIHJldHVybiBydDsKfQp2b2lkIGluaXQoaW50IGlkeCxpbnQgbCxpbnQgcikKewogICAgaWYobD09cikKICAgIHsKICAgICAgICBpZihzW2xdPT0nKCcpCiAgICAgICAgewogICAgICAgICAgc3RbaWR4XS5ub2w9MDsKICAgICAgICAgIHN0W2lkeF0ubmNyPTE7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoc1tyXT09JyknKQogICAgICAgIHsKICAgICAgICAgIHN0W2lkeF0ubm9sPTE7CiAgICAgICAgICBzdFtpZHhdLm5jcj0wOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIDsKICAgIH0KICAgIGludCBtaWQ9KGwrcikvMjsKCiAgICBpbml0KDIqaWR4LGwsbWlkKTsKICAgIGluaXQoMippZHgrMSxtaWQrMSxyKTsKICAgIHNlZ19ub2RlICpzbj1tZXJnZSgmc3RbMippZHhdLCZzdFsyKmlkeCsxXSk7CiAgICBzdFtpZHhdLm5jcj1zbi0+bmNyOwogICAgc3RbaWR4XS5ub2w9c24tPm5vbDsKICAgIGZyZWUoc24pOwp9Cgp2b2lkIHVwZGF0ZShpbnQgaWR4LGludCBsLGludCByLGludCBrKQp7CiAgICBpZihsPT1yICYmIGw9PWspCiAgICB7CiAgICAgICAgaWYoc1trXT09JyknKQogICAgICAgIHsKICAgICAgICAgICAgc1trXT0nKCc7CiAgICAgICAgICAgIHN0W2lkeF0ubm9sPTA7CiAgICAgICAgICAgIHN0W2lkeF0ubmNyPTE7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHNba109JyknOwogICAgICAgICAgICBzdFtpZHhdLm5vbD0xOwogICAgICAgICAgICBzdFtpZHhdLm5jcj0wOwogICAgICAgIH0KICAgICAgICByZXR1cm4gOwogICAgfQogICAgaW50IG1pZD0obCtyKS8yOwogICAgaWYoazw9bWlkKSB1cGRhdGUoMippZHgsbCxtaWQsayk7CiAgICBlbHNlIGlmKGs+bWlkKSB1cGRhdGUoMippZHgrMSxtaWQrMSxyLGspOwoKICAgIHNlZ19ub2RlICpzbj1tZXJnZSgmc3RbMippZHhdLCZzdFsyKmlkeCsxXSk7CiAgICBzdFtpZHhdLm5jcj1zbi0+bmNyOwogICAgc3RbaWR4XS5ub2w9c24tPm5vbDsKICAgIGZyZWUoc24pOwoKfQoKdm9pZCBjaGVjaygpCnsKICAgIGlmKHN0WzFdLm5vbD09MCAmJiBzdFsxXS5uY3I9PTApCiAgICB7CiAgICAgICAgcHJpbnRmKCJZRVNcbiIpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIHByaW50ZigiTk9cbiIpOwogICAgcmV0dXJuIDsKfQppbnQgbWFpbigpCnsKICAgIGludCB0PTEwLG4scSxrLGk9MDs7CiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgICAgc2NhbmYoIiVkIiwmbik7CgogICAgICAgIHNjYW5mKCIlcyIscysxKTsKICAgICAgICBpKys7CiAgICAgICAgcHJpbnRmKCJUZXN0ICVkOlxuIixpKTsKICAgICAgICBpZihuJTI9PTApCiAgICAgICAgaW5pdCgxLDEsbik7CiAgICAgICAgc2NhbmYoIiVkIiwmcSk7CiAgICAgICAgd2hpbGUocS0tKQogICAgICAgIHsKICAgICAgICAgICAgc2NhbmYoIiVkIiwmayk7CiAgICAgICAgICAgIGlmKG4lMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJpbnRmKCJOT1xuIik7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoaz09MCkKICAgICAgICAgICAgICAgIGNoZWNrKCk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHVwZGF0ZSgxLDEsbixrKTsKICAgICAgICB9CiAgICAgICAgaWYodD09MCkKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICByZXR1cm4gMDsKfQoK