Problem: 2061D - Kevin and Numbers
Language: C++20 (GCC 13-64)

Previous submission (verdict: Wrong answer on test 3):
// #include<bits/stdc++.h>
// using namespace std;
// using i64 = long long;
// using i128 = __int128;

// int n,m;
// void solve(){
//     cin>>n>>m;
//     vector<int> a(n),b(m);
//     multiset<int> se1,se2;
//     for(auto &i:a) cin>>i,se1.insert(i);
//     for(auto &i:b) cin>>i,se2.insert(i);
//     for(int i )
// }

// signed main(){
//     ios::sync_with_stdio(0);cin.tie(0);
//     int t;
//     cin>>t;
//     while(t--) solve();
//     return 0;
// }
#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
using i128 = __int128;

int n,m;
void solve(){
    cin>>n>>m;
    vector<int> a(n),b(m);
    multiset<int> se1,se2;
    i64 sa=0,sb=0;
    for(auto &i:a) cin>>i,se1.insert(i),sa+=i;
    for(auto &i:b) cin>>i,se2.insert(i),sb+=i;
        //int now = 0;
        if(sa!=sb){
            cout<<"No\n";
            return;
        }
    while(!se2.empty()&&se2.size()<se1.size()){
        //cout<<now<<"\n";
        multiset<int> tmp;
        for(auto i:se2){
            if(se1.find(i)==se1.end()){
                if(i/2<=0) continue;
                tmp.insert(i/2);
                tmp.insert((i+1)/2);
            }else se1.erase(se1.find(i));
        }
        se2.swap(tmp);
    }
    if(se1.size()==se2.size()){
        for(auto i:se2){
            if(se1.find(i)==se1.end()){
                cout<<"No\n";
                return;
            }
        }
        cout<<"Yes\n";
    }else{
        cout<<"No\n";
    }
}

signed main(){
    ios::sync_with_stdio(0);cin.tie(0);
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}






Submission (verdict: Wrong answer on test 3):
// #include<bits/stdc++.h>
// using namespace std;
// using i64 = long long;
// using i128 = __int128;

// int n,m;
// void solve(){
//     cin>>n>>m;
//     vector<int> a(n),b(m);
//     multiset<int> se1,se2;
//     for(auto &i:a) cin>>i,se1.insert(i);
//     for(auto &i:b) cin>>i,se2.insert(i);
//     for(int i )
// }

// signed main(){
//     ios::sync_with_stdio(0);cin.tie(0);
//     int t;
//     cin>>t;
//     while(t--) solve();
//     return 0;
// }
#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
using i128 = __int128;

int n,m;
void solve(){
    cin>>n>>m;
    vector<int> a(n),b(m);
    multiset<int> se1,se2;
    i64 sa=0,sb=0;
    for(auto &i:a) cin>>i,se1.insert(i),sa+=i;
    for(auto &i:b) cin>>i,se2.insert(i),sb+=i;
        //int now = 0;
        if(sa!=sb){
            cout<<"No\n";
            return;
        }
    while(!se2.empty()&&se2.size()<se1.size()){
        //cout<<now<<"\n";
        multiset<int> tmp;
        for(auto i:se2){
            if(se1.find(i)==se1.end()){
                if(i/2<=0) continue;
                tmp.insert(i/2);
                tmp.insert((i+1)/2);
            }else se1.erase(se1.find(i));
        }
        se2.swap(tmp);
    }
    if(se1.size()==se2.size()){
        for(auto i:se2){
            if(se1.find(i)==se1.end()){
                cout<<"No\n";
                return;
            }
        }
        for(auto i:se1){
            if(se2.find(i)==se2.end()){
                cout<<"No\n";
                return;
            }
        }
        cout<<"Yes\n";
    }else{
        cout<<"No\n";
    }
}

signed main(){
    ios::sync_with_stdio(0);cin.tie(0);
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}