func_code_string: #include <bits/stdc++.h>   using namespace std;   bitset<1000001> L, R;   vector<int> H1, H2, V1, V2, res;   multiset<int> AA, BB;   int A[1000], B[1000];   bool solve(int *A, int s, int e, int S) {     int m = (s + e) >> 1;     if (s == e || S == 0) {       if (S) res.push_back(A[m]);       return true;     }     for (int i = 0; i <= S; i++) L[i] = R[i] = 0;     L[0] = R[0] = 1;     for (int i = s; i <= m; i++) L |= L << A[i];     for (int i = e; i > m; i--) R |= R << A[i];     for (int i = 0; i <= S; i++)       if (L[i] && R[S - i]) {         solve(A, s, m, i);         solve(A, m + 1, e, S - i);         return true;       }     return false;   }   int main() {     ios::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     ((void)0);     ((void)0);     ((void)0);     int T, N, M;     for (cin >> T; T--;) {       int H = 0, V = 0, x = 0, y = 0;       cin >> N;       AA.clear();       BB.clear();       for (int i = 0; i < N; i++) {         cin >> A[i];         H += A[i];         AA.insert(A[i]);       }       cin >> M;       for (int i = 0; i < M; i++) {         cin >> B[i];         V += B[i];         BB.insert(B[i]);       }       if ((H & 1) || (V & 1) || N != M || N == 1 || M == 1) {         cout <<  No n ;         continue;       }       sort(A, A + N);       sort(B, B + M);       res.clear();       if (!solve(A, 0, N - 1, H / 2)) {         cout <<  No n ;         continue;       }       H1.clear();       H2.clear();       for (auto v : res) {         H1.push_back(v);         AA.erase(AA.find(v));       }       for (auto v : AA) H2.push_back(v);       res.clear();       if (!solve(B, 0, M - 1, V / 2)) {         cout <<  No n ;         continue;       }       V1.clear();       V2.clear();       for (auto v : res) {         V1.push_back(v);         BB.erase(BB.find(v));       }       for (auto v : BB) V2.push_back(v);       if (V1.size() > V2.size()) swap(V1, V2);       if (H1.size() < H2.size()) swap(H1, H2);       reverse(V1.begin(), V1.end());       reverse(V2.begin(), V2.end());       cout <<  Yes n ;       for (auto &v : V1) v *= -1;       for (auto &h : H2) H1.push_back(-h);       for (auto v : V2) V1.push_back(v);       for (int i = 0; i < N; i++) {         y += V1[i];         cout << x <<     << y <<   n ;         x += H1[i];         cout << x <<     << y <<   n ;       }     }     return 0;   }   