Submission #1267320

#TimeUsernameProblemLanguageResultExecution timeMemory
1267320gayJust Long Neckties (JOI20_ho_t1)C++20
100 / 100
65 ms11692 KiB
#include <bits/stdc++.h>
#include <experimental/random>
#include <random>

using namespace std;
using ll = long long;
using ld = long double;

const ll INF = 1e18, MOD = 998244353;

void solve();

signed main() {
#ifdef LOCAL
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    ll q = 1;
    //cin >> q;
    while (q--) {
        solve();
    }
}

void solve() {
    ll n;
    cin >> n;
    vector<pair<ll, ll>> a;
    for (int i = 0; i <= n; i++) {
        ll x;
        cin >> x;
        a.emplace_back(x, i);
    }
    sort(a.begin(), a.end());
    vector<ll> b(n);
    for (int i = 0; i < n; i++) {
        cin >> b[i];
    }
    sort(b.begin(), b.end());

    vector<ll> pref(n + 1);
    for (int i = 1; i <= n; i++) {
        pref[i] = max(pref[i - 1], a[i - 1].first - b[i - 1]);
    }

    vector<ll> suf(n + 1);
    for (ll i = n - 1; i >= 0; i--) {
        suf[i] = max(suf[i + 1], a[i + 1].first - b[i]);
    }

    vector<ll> ans(n + 1);
    for (int i = 0; i <= n; i++) {
        ans[a[i].second] = max(pref[i], suf[i]);
    }

    for (auto i : ans) {
        cout << i << ' ';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...