#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace atcoder; using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define rep1(i, n) for (int i = 1; i <= (int)(n); ++i) #define repr(i, n) for (int i = (int)(n) - 1; i >= 0; --i) #define rep3(i, l, r) for (int i = (int)(l); i < (int)(r); ++i) #define repr3(i, l, r) for (int i = (int)(r) - 1; i >= (int)(l); --i) using ll = long long; using ull = unsigned long long; using P = pair; using Pll = pair; using vi = vector; using vvi = vector>; using vvvi = vector>>; using vP = vector

; using vPll = vector; using vvP = vector>; using vll = vector; using vvll = vector>; using vs = vector; using vvs = vector; using vb = vector; using vvb = vector; #define all(x) (x).begin(), (x).end() #define fi first #define se second template void chmax(T& a, const T& b) { if (a < b) a = b; } template void chmin(T& a, const T& b) { if (a > b) a = b; } int T; int N; vll A, B; int main() { cin >> T; rep(ti, T) { cin >> N; A.assign(N, 0); B.assign(N, 0); rep(i, N) cin >> A[i]; rep(i, N) cin >> B[i]; vector> Ai(N); rep(i, N) { Ai[i].fi = A[i]; Ai[i].se = i; } sort(all(Ai)); vll Acum(N + 1, 0); vll Bcum(N + 1, 0); rep(i, N) { Acum[i + 1] = Ai[i].fi + Acum[i]; Bcum[i + 1] = B[i] + Bcum[i]; } ll mx = 0; ll num = 0; rep(i, N + 1) { ll diff = Bcum[i] - Acum[i]; if (diff > mx) { mx = diff; num = i; } } vb ans(N); rep(i, num) { int idx = Ai[i].se; ans[idx] = true; } string s; rep(i, N) s += (ans[i] ? '1' : '0'); cout << s << endl; } return 0; }