use itertools::Itertools; use proconio::{fastout, input}; #[fastout] fn main() { input! { t: usize } for _ in 0..t { let ans = solve(); println!("{ans}"); } } fn solve() -> String { input! { n: usize, a: [i64; n], b: [i64; n], } let ord = (0..n).sorted_unstable_by_key(|&i| a[i]).collect_vec(); let mut num = 0; let mut sum = a.iter().sum::(); let mut max = sum; for (i, &idx) in ord.iter().enumerate() { sum -= a[idx]; sum += b[i]; if sum > max { num = i + 1; max = sum; } } let mut ans = vec!['0'; n]; for &i in &ord[..num] { ans[i] = '1'; } ans.into_iter().collect() }