/*
*DIV 2 C.
*LINK:
*nilabja10201992
*/
#include <bits/stdc++.h>
using namespace std;
#define inf (1<<30)
#define INF (int)1e9
#define EPS 1e-9
#define PI 3.1415926535897932384626433832795
#define MOD 1000000007
#define MAX 1000000
struct node{
int open;
int close;
void initialize(char val){
if(val=='('){
open=1;
close=0;
}
else{
open=0;
close=1;
}
}
void merge(node &A,node &B){
int mn=min(A.open,B.close);
open=A.open+B.open-mn;
close=B.close+A.close-mn;
}
}st[MAX];
string arr;
void init(int idx,int l,int r){
if(l==r){
st[idx].initialize(arr[l]);
return;
}
{
int m=(l+r)/2;
init(idx*2+1,l,m);
init(idx*2+2,m+1,r);
st[idx].merge(st[idx*2+1],st[idx*2+2]);
}
}
void update(int idx,int l,int r,int i,char val){
if(l==r && l==i){
st[idx].initialize(val);
return;
}
else{
int m=(l+r)/2;
if(i<=m)
update(idx*2+1,l,m,i,val);
else if(i>m)
update(idx*2+2,m+1,r,i,val);
st[idx].merge(st[idx*2+1],st[idx*2+2]);
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
for(int t=0;t<10;t++){
int n;
cin>>n;
arr.clear();
memset(st,0,sizeof(st));
cin>>arr;
// cout<<arr<<endl;
init(0,0,n-1); //Initialise tree
int q;
cin>>q;
cout<<"Test "<<t+1<<':'<<endl;
while(q--){
// cout<<"c"<<endl;
int f;
cin>>f;
if(f==0){
if(!st[0].open && !st[0].close) //query node
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
else{
if(arr[f-1]=='(')
update(0,0,n-1,f-1,')'); //update node
else
update(0,0,n-1,f-1,'(');
}
}
}
//cout<<"Execution time : "<<tick();
return 0;
}
LyoKKkRJViAyIEMuCipMSU5LOgoqbmlsYWJqYTEwMjAxOTkyCiovCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBpbmYgKDE8PDMwKQojZGVmaW5lIElORiAoaW50KTFlOQojZGVmaW5lIEVQUyAxZS05CiNkZWZpbmUgUEkgMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzODMyNzk1CiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKI2RlZmluZSBNQVggMTAwMDAwMAoKc3RydWN0IG5vZGV7CglpbnQgb3BlbjsKCWludCBjbG9zZTsKCXZvaWQgaW5pdGlhbGl6ZShjaGFyIHZhbCl7CgkgICAgaWYodmFsPT0nKCcpewoJICAgICAgICBvcGVuPTE7CgkgICAgICAgIGNsb3NlPTA7CgkgICAgfQoJICAgIGVsc2V7CgkgICAgICAgIG9wZW49MDsKCSAgICAgICAgY2xvc2U9MTsKCSAgICB9Cgl9Cgl2b2lkIG1lcmdlKG5vZGUgJkEsbm9kZSAmQil7CgkgICAgaW50IG1uPW1pbihBLm9wZW4sQi5jbG9zZSk7CgkgICAgb3Blbj1BLm9wZW4rQi5vcGVuLW1uOwoJICAgIGNsb3NlPUIuY2xvc2UrQS5jbG9zZS1tbjsKCX0KfXN0W01BWF07CnN0cmluZyBhcnI7CnZvaWQgaW5pdChpbnQgaWR4LGludCBsLGludCByKXsKCWlmKGw9PXIpewoJCQlzdFtpZHhdLmluaXRpYWxpemUoYXJyW2xdKTsKCQkgICAgcmV0dXJuOwoJfQoJewoJCWludCBtPShsK3IpLzI7CgkJaW5pdChpZHgqMisxLGwsbSk7CgkJaW5pdChpZHgqMisyLG0rMSxyKTsKCQlzdFtpZHhdLm1lcmdlKHN0W2lkeCoyKzFdLHN0W2lkeCoyKzJdKTsKCX0KfQoKdm9pZCB1cGRhdGUoaW50IGlkeCxpbnQgbCxpbnQgcixpbnQgaSxjaGFyIHZhbCl7CglpZihsPT1yICYmIGw9PWkpewoJCXN0W2lkeF0uaW5pdGlhbGl6ZSh2YWwpOwoJCXJldHVybjsKCX0KCWVsc2V7CgkJaW50IG09KGwrcikvMjsKCQlpZihpPD1tKQoJCQl1cGRhdGUoaWR4KjIrMSxsLG0saSx2YWwpOwoJCWVsc2UgaWYoaT5tKQoJCQl1cGRhdGUoaWR4KjIrMixtKzEscixpLHZhbCk7CgkJc3RbaWR4XS5tZXJnZShzdFtpZHgqMisxXSxzdFtpZHgqMisyXSk7Cgl9Cn0KCmludCBtYWluKCkgewogICAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgICAgY2luLnRpZShOVUxMKTsKCWZvcihpbnQgdD0wO3Q8MTA7dCsrKXsKCQlpbnQgbjsKCQljaW4+Pm47CgkJYXJyLmNsZWFyKCk7CgkJbWVtc2V0KHN0LDAsc2l6ZW9mKHN0KSk7CgkJY2luPj5hcnI7CgkvLwljb3V0PDxhcnI8PGVuZGw7CgkJaW5pdCgwLDAsbi0xKTsJCQkJLy9Jbml0aWFsaXNlIHRyZWUKCQlpbnQgcTsKCQljaW4+PnE7CgkJY291dDw8IlRlc3QgIjw8dCsxPDwnOic8PGVuZGw7CgkJd2hpbGUocS0tKXsKCQkgICAvLyBjb3V0PDwiYyI8PGVuZGw7CgkJCWludCBmOwoJCQljaW4+PmY7CgkJCWlmKGY9PTApewoJCQkJaWYoIXN0WzBdLm9wZW4gJiYgIXN0WzBdLmNsb3NlKQkJCQkvL3F1ZXJ5IG5vZGUKCQkJCQljb3V0PDwiWUVTIjw8ZW5kbDsKCQkJCWVsc2UKCQkJCQljb3V0PDwiTk8iPDxlbmRsOwoJCQl9CgkJCWVsc2V7CgkJCQlpZihhcnJbZi0xXT09JygnKQoJCQkJCXVwZGF0ZSgwLDAsbi0xLGYtMSwnKScpOwkJCQkJIC8vdXBkYXRlIG5vZGUKCQkJCWVsc2UKCQkJCQl1cGRhdGUoMCwwLG4tMSxmLTEsJygnKTsKCQkJfQoJCX0KCX0KCS8vY291dDw8IkV4ZWN1dGlvbiB0aW1lIDogIjw8dGljaygpOwogICAgICByZXR1cm4gMDsKfQo=