#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
#define inf 1000000000000000LL
#define mod 1000000007LL
#define FOR(i,a,b) for(int i = a; i < b; i++)
void solve() {
ll n; string s;
cin >> n >> s;
vector <ll> la(n), lc(n);
FOR(i,0,n) cin >> la[i]; FOR(i,0,n) cin >> lc[i];
vector <ll> prefix(n, inf);
if (lc[0] != la[0] && s[0] == '1'){
cout << "No" << "\n";
return;
}
else{
la[0] = lc[0];
s[0] = '1';
prefix[0] = lc[0];
}
for (int i = 1; i < n; i++){
if (lc[i] < lc[i-1]){
cout << "No" << "\n";
return;
}
if (lc[i] != lc[i-1]){
prefix[i] = lc[i];
}
}
for (int i = n-1; i >= 1; i--){
if (prefix[i] != inf && s[i] == '1'){
if (prefix[i-1] != inf && prefix[i-1] != prefix[i] - la[i]){
cout << "No" << "\n";
return;
}
prefix[i-1] = prefix[i] - la[i];
}
}
// cout << "hi";
ll sum = 0;
// FOR(i,0,n){
// cout << prefix[i] << " ";
// }
// cout << "\n";
for (int i = 0; i < n; i++){
sum += la[i];
if (prefix[i] != inf && s[i] == '1' && sum != prefix[i]){
cout << "No" << "\n";
return;
}
if (prefix[i] != inf && s[i] == '0'){
la[i] = prefix[i] - sum;
}
if (prefix[i] == inf && s[i] == '0'){
la[i] = -1000000000000LL;
}
if (s[i] == '0') sum += la[i];
// cout << sum << " ";
if (sum > lc[i]){
// cout << "hi" << " " << sum << " " << lc[i] << " ";
cout << "No" << "\n";
return;
}
}
cout << "Yes" << "\n";
for (int i = 0; i< n; i++){
cout << la[i] << " ";
}
cout << "\n";
}
int main() {
// ios::sync_with_stdio(false);
// cin.tie(nullptr);
ll t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nIGludDsKI2RlZmluZSBpbmYgMTAwMDAwMDAwMDAwMDAwMExMCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDdMTAojZGVmaW5lIEZPUihpLGEsYikgZm9yKGludCBpID0gYTsgaSA8IGI7IGkrKykKCnZvaWQgc29sdmUoKSB7CiAgICBsbCBuOyBzdHJpbmcgczsKICAgIGNpbiA+PiBuID4+IHM7CiAgICB2ZWN0b3IgPGxsPiBsYShuKSwgbGMobik7CiAgICBGT1IoaSwwLG4pIGNpbiA+PiBsYVtpXTsgRk9SKGksMCxuKSBjaW4gPj4gbGNbaV07CiAgICB2ZWN0b3IgPGxsPiBwcmVmaXgobiwgaW5mKTsKICAgIGlmIChsY1swXSAhPSBsYVswXSAmJiBzWzBdID09ICcxJyl7CiAgICAgICAgY291dCA8PCAiTm8iIDw8ICJcbiI7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgZWxzZXsKICAgICAgICBsYVswXSA9IGxjWzBdOwogICAgICAgIHNbMF0gPSAnMSc7CiAgICAgICAgcHJlZml4WzBdID0gbGNbMF07CiAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKyl7CiAgICAgICAgaWYgKGxjW2ldIDwgbGNbaS0xXSl7CiAgICAgICAgICAgIGNvdXQgPDwgIk5vIiA8PCAiXG4iOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChsY1tpXSAhPSBsY1tpLTFdKXsKICAgICAgICAgICAgcHJlZml4W2ldID0gbGNbaV07CiAgICAgICAgfQogICAgfQogICAgZm9yIChpbnQgaSA9IG4tMTsgaSA+PSAxOyBpLS0pewogICAgICAgIGlmIChwcmVmaXhbaV0gIT0gaW5mICYmIHNbaV0gPT0gJzEnKXsKICAgICAgICAgICAgaWYgKHByZWZpeFtpLTFdICE9IGluZiAmJiBwcmVmaXhbaS0xXSAhPSBwcmVmaXhbaV0gLSBsYVtpXSl7CiAgICAgICAgICAgICAgICBjb3V0IDw8ICJObyIgPDwgIlxuIjsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBwcmVmaXhbaS0xXSA9IHByZWZpeFtpXSAtIGxhW2ldOwogICAgICAgIH0KICAgIH0KICAgIC8vIGNvdXQgPDwgImhpIjsKICAgIGxsIHN1bSA9IDA7CiAgICAvLyBGT1IoaSwwLG4pewogICAgLy8gICAgIGNvdXQgPDwgcHJlZml4W2ldIDw8ICIgIjsKICAgIC8vIH0KICAgIC8vIGNvdXQgPDwgIlxuIjsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKICAgICAgICBzdW0gKz0gbGFbaV07CiAgICAgICAgaWYgKHByZWZpeFtpXSAhPSBpbmYgJiYgc1tpXSA9PSAnMScgJiYgc3VtICE9IHByZWZpeFtpXSl7CiAgICAgICAgICAgIGNvdXQgPDwgIk5vIiA8PCAiXG4iOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChwcmVmaXhbaV0gIT0gaW5mICYmIHNbaV0gPT0gJzAnKXsKICAgICAgICAgICAgbGFbaV0gPSBwcmVmaXhbaV0gLSBzdW07CiAgICAgICAgfQogICAgICAgIGlmIChwcmVmaXhbaV0gPT0gaW5mICYmIHNbaV0gPT0gJzAnKXsKICAgICAgICAgICAgbGFbaV0gPSAtMTAwMDAwMDAwMDAwMExMOwogICAgICAgIH0KICAgICAgICBpZiAoc1tpXSA9PSAnMCcpIHN1bSArPSBsYVtpXTsKICAgICAgICAvLyBjb3V0IDw8IHN1bSA8PCAiICI7CiAgICAgICAgaWYgKHN1bSA+IGxjW2ldKXsKICAgICAgICAgICAgLy8gY291dCA8PCAiaGkiIDw8ICIgIiA8PCBzdW0gPDwgIiAiIDw8IGxjW2ldIDw8ICIgIjsKICAgICAgICAgICAgY291dCA8PCAiTm8iIDw8ICJcbiI7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8ICJZZXMiIDw8ICJcbiI7CiAgICBmb3IgKGludCBpID0gMDsgaTwgbjsgaSsrKXsKICAgICAgICBjb3V0IDw8IGxhW2ldIDw8ICIgIjsKICAgIH0KICAgIGNvdXQgPDwgIlxuIjsKfQoKaW50IG1haW4oKSB7CiAgICAvLyBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICAvLyBjaW4udGllKG51bGxwdHIpOwoKICAgIGxsIHQgPSAxOwogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==