/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 532.0 KiB
#3 Wrong Answer 50ms 724.0 KiB
#4 Wrong Answer 45ms 576.0 KiB

Code

#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
using ll = long long;

void solve() {
    int n;
    cin >> n;
    vector<int> a(n), b(n);
    for(auto &i: a) cin >> i;
    for(auto &i: b) cin >> i;
    sort(a.begin(), a.end());
    sort(b.begin(), b.end());

    auto check = [&](vector<int> vec1, vector<int> vec2) -> bool {
        multiset<int> st1(vec1.begin(), vec1.end());
        vector<int> tmp1(n);
        for(int i = 0; i < n; i++) {
            if(i & 1) tmp1[i] = *st1.rbegin();
            else tmp1[i] = *st1.begin();
            st1.erase(st1.find(tmp1[i]));
        }
        // for(auto &i: tmp1) cout << i << " "; cout << endl;

        multiset<int> st2(vec2.begin(), vec2.end());
        vector<int> tmp2(n);
        for(int i = 0; i < n; i++) {
            if(i & 1) tmp2[i] = *st2.begin();
            else tmp2[i] = *st2.rbegin();
            st2.erase(st2.find(tmp2[i]));
        }
        // for(auto &i: tmp2) cout << i << " "; cout << endl;

        for(int i = 1; i + 1 < n; i++) {
            if(tmp1[i] > tmp2[i - 1] && tmp1[i] > tmp2[i + 1]) continue;
            return 0;
        }
        return 1;
    };
    if(check(a, b) or check(b, a)) cout << "Yes" << endl;
    else cout << "No" << endl;
    return;
}

int main() {
    ios::sync_with_stdio(false); cin.tie(0);
    int tc = 1;
    cin >> tc;
    for (int t = 1; t <= tc; t++) {
        // cout << "Case " << t << ": ";
        solve();
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1193 C. Roy and Peak Array
Language
C++17 (G++ 13.2.0)
Submit At
2025-06-01 18:35:11
Judged At
2025-06-01 18:35:11
Judged By
Score
5
Total Time
50ms
Peak Memory
724.0 KiB