use proconio::{fastout, input, marker::Chars}; #[fastout] fn main() { input! { t: usize } for _ in 0..t { let ans = solve(); println!("{ans}"); } } fn solve() -> String { input! { r: Chars, s: String, k: usize, } let n = r.len(); let mut ans = r.clone(); if s == "Warong" { let contains_w = r.iter().any(|&r| r == 'W'); for i in 0..k { assert_ne!(ans[i], 'W'); ans[i] = 'A'; } if let Some(i) = (k..n).find(|&i| ans[i] == '?') { if !contains_w && (i + 1..n).all(|j| ans[j] != '?') { ans[i] = 'W'; } } } else { if (0..k).all(|i| ans[i] == 'A') { for i in k..n { assert_ne!(ans[i], 'W'); ans[i] = 'A'; } } else { let count = (0..k).filter(|&i| r[i] == 'A').count(); let contains_w = r[k..].iter().any(|&r| r == 'W'); if let Some(i) = (0..k).find(|&i| ans[i] == '?') { if count == k - 1 && contains_w { ans[i] = 'W'; } } } } ans.iter().collect() }