#include <bits/stdc++.h>
#define debug(x) cout << #x << ":\t" << (x) << endl;
using namespace std;
#define ll long long
#define ull unsigned ll
const int N = 2e6 + 10;
const int INF = 0x3f3f3f3f;
const ll inf = 0x3f3f3f3f3f3f3f3f;
const ll mod = 1e9 + 7;
const ll inv2 = (mod + 1) / 2;
int T;
int n;
char s[N], a[N], b[N];
bool ck() {
	int flg = 1;
	a[n + 1] = b[n + 1] = 0;
	int m = 0, c = 0;
	for (int i = 1; i <= n; i++)if (s[i] == '1')m++;
	for (int i = 1; i <= n; i++) {
		if (s[i] == '1') {
			c++;
			if (c <= m / 2)a[i] = b[i] = '(';
			else a[i] = b[i] = ')';
		}
		else {
			if (flg)a[i] = '(', b[i] = ')';
			else a[i] = ')', b[i] = '(';
			flg ^= 1;
		}
	}
	int sa = 0, sb = 0;
	for (int i = 1; i <= n; i++) {
		if (a[i] == '(')sa++;
		else sa--;
		if (b[i] == '(')sb++;
		else sb--;
		if (sa < 0 || sb < 0)return false;
	}
	return sa == 0 && sb == 0;
}
int tt = 0;
int main() {
	scanf("%d", &T);
	while (++tt<=T) {
		scanf("%d", &n);
		scanf("%s", s + 1);
		if (ck()) {
			puts("YES");
			printf("%s\n%s\n", a + 1, b + 1);
		}
		else puts("NO");
	}
	return 0;
}