Two Cards, https://www.codechef.com/problems/TWOCARD?tab=statement

#include <bits/stdc++.h>
#define lp(n) for(int i=0; i<n; i++)
#define ll long long
#define endl '\n'
#define sza(x) ((int)x.size())
#define all(a) (a).begin(), (a).end()
#define FAST_IO ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
using namespace std;

int main() {
    FAST_IO;
    int t;
    cin >> t;
    
    while(t--) {
        int n;
        cin >> n;
        vector<pair<int, int>> cards(n);
        int m = 0;
        
        lp(n) {
            cin >> cards[i].first;
            m = max(m, cards[i].first);
        }
        
        lp(n) {
            cin >> cards[i].second;
            m = max(m, cards[i].second);
        }
        
        for (auto &card : cards) {
            if (card.first == m || card.second == m) {
                card.first = 0;
                card.second = 0;
                break; 
            }
        }

        sort(all(cards), [](const pair<int, int>& a, const pair<int, int>& b) {
            return a.first > b.first; 
        });

        if (max(cards[0].first, cards[0].second) >= m) {
            cout << "No\n"; 
        } else {
            cout << "Yes\n";
        }
    }
}

Can anyone help and explain this, i don’t know why i am failing, i am correctly selecting a maximum valued card ofr Alice and then a card with maximum ‘a’ value for Bob, then why does this code fails