Submission #961687

#TimeUsernameProblemLanguageResultExecution timeMemory
961687VMaksimoski008Just Long Neckties (JOI20_ho_t1)C++14
100 / 100
210 ms10948 KiB
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;

int32_t main() {
    int n;
    cin >> n;

    vector<pii> a(n+1); int id = 0;
    vector<int>  b(n), ans(n+1);
    for(auto &x : a) cin >> x.first, x.second = id++;
    for(int &x : b) cin >> x;
    sort(a.begin(), a.end());
    sort(b.begin(), b.end());

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

    for(int i=0; i<=n; i++) {
        int res = 0;
        if(i) res = pref[i-1];
        if(i != n) res = max(res, suf[i+1]);
        ans[a[i].second] = res;
    }

    for(int &x : ans) cout << x << " ";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...