#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include #include #define rep(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++) using namespace atcoder; using namespace std; typedef long long ll; template bool chmax(T &a, S b) { if (a < b) { a = b; return 1; } return 0; } void solve() { int n; cin >> n; vector a(n), b(n); vector> v(n); rep(i, 0, n) { cin >> a[i]; v[i] = {a[i], i}; } rep(i, 0, n) cin >> b[i]; sort(v.begin(), v.end()); reverse(v.begin(), v.end()); vector as(n + 1), bs(n + 1); rep(i, 0, n) { as[i + 1] = v[i].first + as[i]; bs[i + 1] = b[i] + bs[i]; } reverse(as.begin(), as.end()); ll mx = as[0], cnt = 0; rep(i, 1, n + 1) if (chmax(mx, as[i] + bs[i])) cnt = i; string ans(n, '0'); reverse(v.begin(), v.end()); rep(i, 0, cnt) ans[v[i].second] = '1'; cout << ans << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); int t; cin >> t; while (t--) solve(); }