#include<bits/stdc++.h>
using namespace std;
#define FAST ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
#define sz(a) ((a).size())
#define pb push_back
#define pf push_front
#define mp make_pair
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define ll long long
#define mem(a,val) memset(a,val,sizeof(a))
#define forn(i,a,n) for(i = a; i < (n); i++)
#define pii pair< int, int >
#define pll pair< ll, ll  >
#define maxn 1000000007
const long long INF64 = (long long)(1e18) + 10;
#define endl '\n'
 
int main()
{
    FAST
    ll q=1,i,j,test,k=1;
    cin>>q;
    forn(test,1,q+1)
	{
	    ll n;
	    cin>>n;
	    string s;
	    cin>>s;
	    ll x=0,y=0;
	    vector< char >a(n),b(n);
	    forn(i,0,n)
	    {
	        if(s[i]=='0') x++;
	    }
	    if(x&1||s[0]=='0'||s[n-1]=='0'){
	      cout<<"NO\n";  
	      continue;
	    }
	    x=n-x;
	    x/=2;
	    y=0;
	    forn(i,0,n)
	    {
	        if(s[i]=='1')
	        {
	            if(x>0)
	            {
	                a[i]='(';
	                b[i]='(';
	                x--;
	            }
	            else
	            {
	                a[i]=')';
	                b[i]=')';
	            }
	        }
	        else
	        {
	            if(y==0)
	            {
	                a[i]='(';
	                b[i]=')';
	            }
	            else
	            {
	                a[i]=')';
	                b[i]='(';
	            }
	            y=1-y;
	        }
	    }
	    cout<<"YES\n";
	    forn(i,0,n) cout<<a[i];
	    cout<<endl;
	    forn(i,0,n) cout<<b[i];
	    cout<<endl;
	    
	}
}