Submission #1352383

#TimeUsernameProblemLanguageResultExecution timeMemory
1352383mxhrvsCarnival (EGOI23_carnival)C++20
100 / 100
16 ms8324 KiB
#include<bits/stdc++.h>
using namespace std;

using ll  = long long;
const ll maxn = 2005;
ll a[maxn][maxn]; 
vector<ll> v; 

bool query(ll u, ll v) {
    if (u > v) swap(u, v);
    return a[v][u] < (v + 1) / 2;
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    ll n;
    cin >> n;

    for (ll i = 1; i < n; i++) {
        for (ll j = 0; j < i; j++) {
            ll p;
            cin >> p; 
            a[i][p] = j; 
        }
    }

    v.push_back(0);

    for (ll i = 1; i < n; i++) {
        if (query(i, v.front())) {
            v.insert(v.begin(), i);
        }
        else if (query(i, v.back())) {
            v.push_back(i);
        }
        else {
            for (ll j = 0; j < v.size() - 1; j++) {
                if (query(i, v[j]) && query(i, v[j+1])) {
                    v.insert(v.begin() + j + 1, i);
                    break;
                }
            }
        }
    }

    for (ll i = 0; i < v.size(); i++) {
        cout << v[i] << " ";
    }
    cout << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...