import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.ArrayDeque; import java.util.Arrays; import java.util.PriorityQueue; import java.util.Queue; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int t = Integer.parseInt(br.readLine()); PrintWriter pw = new PrintWriter(System.out); for (int z = 0; z < t; z++) { int n = Integer.parseInt(br.readLine()); String[] sa = br.readLine().split(" "); int[] a = new int[n]; for (int i = 0; i < n; i++) { a[i] = Integer.parseInt(sa[i]); } sa = br.readLine().split(" "); int[] b = new int[n]; for (int i = 0; i < n; i++) { b[i] = Integer.parseInt(sa[i]); } PriorityQueue que = new PriorityQueue<>((o1, o2) -> o1.a - o2.a); long val = 0; for (int i = 0; i < n; i++) { Obj o = new Obj(); o.i = i; o.a = a[i]; que.add(o); val += a[i]; } Queue que2 = new ArrayDeque<>(); long max = val; char[] ans = new char[n]; Arrays.fill(ans, '0'); for (int i = 0; i < n; i++) { Obj o = que.poll(); val -= o.a; val += b[i]; que2.add(o); if (val > max) { max = val; while (!que2.isEmpty()) { Obj o2 = que2.poll(); ans[o2.i] = '1'; } } } pw.println(ans); } pw.flush(); br.close(); } static class Obj { int i, a; } }