Problem: 2052A - Adrenaline Rush
Language: C++20 (GCC 13-64)

Previous submission (verdict: Wrong answer on test 4):
#include <bits/stdc++.h>

/*
  #include<Luck>
  Compete against Yourself.
  Author - swayam_wish
*/
using namespace std;


#define ll long long
#define pii pair<ll, ll>
#define piii pair<ll, pair<ll, ll>>
#define pis pair<int, string>
#define db double


ll gcd(ll a, ll b) {
    if (a % b == 0) return b;
    return gcd(b, a % b);
}

ll reqN(ll k){
   int cnt = 0;
  
   bool ok = 0;


   while(k != 1){
      if(k%2 != 0){
        ok = 1;
      }
      k/=2;
      cnt++;

   }
   return cnt+ok;
}

int main() {
    

    int t ;
    t= 1;
    

    while (t--) {
      
    int n;
    cin >> n;

    vector<ll> nums(n);

    for(int i = 0; i<n; i++){
        cin >> nums[i];
    }

    vector<vector<ll>> ans;
    vector<vector<ll>> seq(n+1,vector<ll>(n+1,0));
    for(int i = 0; i<n; i++){
        for(int j = i+1; j<n; j++){
            seq[nums[j]][nums[i]] = 1;
            if(nums[i]<nums[j]){
                ans.push_back({nums[j],nums[i]});
                ans.push_back({nums[i],nums[j]});
            }
            else{
                ans.push_back({nums[i],nums[j]});
            }
        }
    }

    sort(ans.begin(),ans.end(),[seq](vector<ll> &a ,vector<ll> & b){
        int curr1 = seq[a[0]][a[1]];
        int curr2 = seq[b[0]][b[1]];

        if(curr1 != curr2){
            return curr1>curr2;
        }
        else{
            if(a[0] == b[0]){
                return a[1]<b[1];
            }
            return a[0]>b[0];
        }
    });
    cout<<ans.size()<<endl;
    for(auto it: ans){
        cout<<it[0]<<" "<<it[1]<<endl;
    }






    }

    return 0;
}


Submission (verdict: Wrong answer on test 4):
#include <bits/stdc++.h>

/*
  #include<Luck>
  Compete against Yourself.
  Author - swayam_wish
*/
using namespace std;


#define ll long long
#define pii pair<ll, ll>
#define piii pair<ll, pair<ll, ll>>
#define pis pair<int, string>
#define db double


ll gcd(ll a, ll b) {
    if (a % b == 0) return b;
    return gcd(b, a % b);
}

ll reqN(ll k){
   int cnt = 0;
  
   bool ok = 0;


   while(k != 1){
      if(k%2 != 0){
        ok = 1;
      }
      k/=2;
      cnt++;

   }
   return cnt+ok;
}

int main() {
    

    int t ;
    t= 1;
    

    while (t--) {
      
    int n;
    cin >> n;

    vector<ll> nums(n);

    for(int i = 0; i<n; i++){
        cin >> nums[i];
    }

    vector<vector<ll>> ans;
    vector<vector<ll>> seq(n+1,vector<ll>(n+1,0));
    for(int i = 0; i<n; i++){
        for(int j = i+1; j<n; j++){
            seq[nums[j]][nums[i]] = 1;
            if(nums[i]<nums[j]){
                ans.push_back({nums[j],nums[i]});
                ans.push_back({nums[i],nums[j]});
            }
            else{
                ans.push_back({nums[i],nums[j]});
            }
        }
    }

    sort(ans.begin(),ans.end(),[seq](vector<ll> &a ,vector<ll> & b){
        int curr1 = seq[a[0]][a[1]];
        int curr2 = seq[b[0]][b[1]];

        if(curr1 != curr2){
            return curr1>curr2;
        }
        else{
            if(a[0] == b[0]){
                if(curr1 == 0){
                    return a[1]<b[1];
                }
                else{
                    return a[1]>b[1];
                }
                
            }
            return a[0]>b[0];
        }
    });
    cout<<ans.size()<<endl;
    for(auto it: ans){
        cout<<it[0]<<" "<<it[1]<<endl;
    }






    }

    return 0;
}