/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 4ms 320.0 KiB

Code

#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
using namespace std;
// using namespace __gnu_pbds;
#define int long long
// #define endl "\n"
#define tej ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define mod 1000000007
#define sum(zee) (accumulate((zee).begin(), (zee).end(), 0LL))
#define mine(zee) (*min_element((zee).begin(), (zee).end()))
#define maxe(zee) (*max_element((zee).begin(), (zee).end()))
#define mini(zee) (min_element((zee).begin(), (zee).end()) - (zee).begin())
#define maxi(zee) (max_element((zee).begin(), (zee).end()) - (zee).begin())
#define cnt(zee, x) (count((zee).begin(), (zee).end(), (x)))
#define lob(zee, x) (*lower_bound((zee).begin(), (zee).end(), (x)))
#define upb(zee, x) (*upper_bound((zee).begin(), (zee).end(), (x)))
#define ojs() \
    freopen("input.txt", "r", stdin); \
    freopen("output.txt", "w", stdout);

// typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> oset;

#define order_of_key(x) oset.order_of_key(x) // Number of elements less than x
#define find_by_order(k) *oset.find_by_order(k) // K-th smallest element (0-based index)

#define oin(x) oset.insert(x);      // O(log n)
#define oer(x) oset.erase(x);       // O(log n)

int a[1]={0};
class FastInput {
public:
    FastInput() {
        ios::sync_with_stdio(false);
        cin.tie(NULL);
    }

    int nextInt() {
        int x;
        cin >> x;
        return x;
    }

    long long nextLong() {
        long long x;
        cin >> x;
        return x;
    }
};

FastInput in;
//ostream &output = ot;
void solve(int test)
{
    // Your solution here
    int n=in.nextInt();
    vector<int> A(n), B(n);
    for (int i = 0; i < n; i++){
        A[i]=in.nextInt();
    }
    for (int i = 0; i < n; i++){
        B[i]=in.nextInt();
    }
    if(n < 3){
        cout << "Yes\n";
        return;
    }
    sort(A.begin(), A.end());
    sort(B.begin(), B.end(), greater<int>());
 
    bool valid = true;
    for (int i = 1; i <= n - 2; i++){
        bool opt1 = (A[i] > B[i - 1] && A[i] > B[i + 1]);
        bool opt2 = (B[i] > A[i - 1] && B[i] > A[i + 1]);
        if( !(opt1 || opt2) ){
            valid = false;
            break;
        }
    }
 
    cout << (valid ? "Yes" : "No") << "\n";
}

// Main function
signed main() {
    tej;
    // #ifndef ONLINE_JUDGE
    //     ojs();
    // #endif

    int test=1;
    test=in.nextInt();
    while(test--) {
        solve(test);
    }
    return 0;
}

Information

Submit By
Type
Pretest
Problem
P1193 C. Roy and Peak Array
Language
C++17 (G++ 13.2.0)
Submit At
2025-06-13 15:38:27
Judged At
2025-06-13 15:38:27
Judged By
Score
10
Total Time
4ms
Peak Memory
320.0 KiB