/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 5ms 1.02 MiB
#3 Accepted 2ms 532.0 KiB
#4 Accepted 5ms 504.0 KiB
#5 Accepted 8ms 852.0 KiB
#6 Accepted 5ms 532.0 KiB
#7 Accepted 3ms 532.0 KiB
#8 Accepted 3ms 532.0 KiB
#9 Accepted 18ms 532.0 KiB
#10 Wrong Answer 4ms 320.0 KiB
#11 Accepted 60ms 5.77 MiB
#12 Accepted 43ms 5.762 MiB

Code

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

void solve() {
    int n;
    cin >> n;
    vector<ll> v(n + 2);
    set<ll> st;
    for(int i = 1; i <= n; i++) {
        cin >> v[i];
        st.insert(v[i]);
    }
    if(n <= 3) {
        cout << "YES" << endl;
        return;
    }
    bool ok = 1;
    ll l = 2, r = n, mn = v[1], mx = v[1];
    while(l <= r) {
        // for l
        if(!(mn < v[l] && v[l] < mx)) {
            if(v[l] == mn or v[l] == mx) {
                ++l;
                continue;
            }
            if(v[l] < mn) {
                auto it = st.upper_bound(v[l]);
                if(it != st.end() && *it == mn) {
                    mn = v[l];
                    ++l;
                    continue;
                }
            }
            else if(mx < v[l]) {
                auto it = st.upper_bound(mx);
                if(it != st.end() && *it == v[l]) {
                    mx = v[l];
                    ++l;
                    continue;
                }
            }
        }
        if(l > r) break;
        // for r
        if(!(mn < v[r] && v[r] < mx)) {
            if(v[r] == mn or v[r] == mx) {
                --r;
                continue;
            }
            if(v[r] < mn) {
                auto it = st.upper_bound(v[r]);
                if(it != st.end() && *it == mn) {
                    mn = v[r];
                    --r;
                    continue;
                }
            }
            else if(mx < v[r]) {
                auto it = st.upper_bound(mx);
                if(it != st.end() && *it == v[r]) {
                    mx = v[r];
                    --r;
                    continue;
                }
            }
        }
        ok = 0;
        break;
    }
    if(ok) {
        cout << "YES" << endl;
        return;
    }

    ok = 1;
    l = 1, r = n - 1, mn = v[n], mx = v[n];
    while(l <= r) {
        // for l
        if(!(mn < v[l] && v[l] < mx)) {
            if(v[l] == mn or v[l] == mx) {
                ++l;
                continue;
            }
            if(v[l] < mn) {
                auto it = st.upper_bound(v[l]);
                if(it != st.end() && *it == mn) {
                    mn = v[l];
                    ++l;
                    continue;
                }
            }
            else if(mx < v[l]) {
                auto it = st.upper_bound(mx);
                if(it != st.end() && *it == v[l]) {
                    mx = v[l];
                    ++l;
                    continue;
                }
            }
        }
        if(l > r) break;
        // for r
        if(!(mn < v[r] && v[r] < mx)) {
            if(v[r] == mn or v[r] == mx) {
                --r;
                continue;
            }
            if(v[r] < mn) {
                auto it = st.upper_bound(v[r]);
                if(it != st.end() && *it == mn) {
                    mn = v[r];
                    --r;
                    continue;
                }
            }
            else if(mx < v[r]) {
                auto it = st.upper_bound(mx);
                if(it != st.end() && *it == v[r]) {
                    mx = v[r];
                    --r;
                    continue;
                }
            }
        }
        ok = 0;
        break;
    }
    if(ok) {
        cout << "YES" << endl;
        return;
    }
    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
P1229 Array of Beauty
Contest
LUCC Presents Intra LU Junior Programming Contest - Replay
Language
C++17 (G++ 13.2.0)
Submit At
2025-09-02 16:49:25
Judged At
2025-09-02 16:49:25
Judged By
Score
96
Total Time
60ms
Peak Memory
5.77 MiB