Submission #540923

#TimeUsernameProblemLanguageResultExecution timeMemory
540923LittleCubeJust Long Neckties (JOI20_ho_t1)C++14
100 / 100
238 ms10792 KiB
#include <bits/stdc++.h>
#define ll long long
#define pii pair<int, int>
#define pll pair<ll, ll>
#define F first
#define S second
using namespace std;

int N, A[200005], B[200005], pre[2][200005], order[200005], ans[200005];

signed main()
{
    cin >> N;
    for (int i = 1; i <= N + 1; i++)
        cin >> A[i];
    for (int i = 1; i <= N + 1; i++)
        order[i] = i;
    sort(order + 1, order + 2 + N, [&](int i, int j)
         { return A[i] < A[j]; });
    sort(A + 1, A + 2 + N);
    for (int i = 1; i <= N; i++)
        cin >> B[i];
    sort(B + 1, B + 1 + N);
    for (int j = 0; j <= 1; j++)
        for (int i = 1; i <= N; i++)
            pre[j][i] = max(0, A[i + j] - B[i]);
    for (int i = 1; i <= N; i++)
        pre[0][i] = max(pre[0][i], pre[0][i - 1]);
    for (int i = N; i >= 1; i--)
        pre[1][i] = max(pre[1][i], pre[1][i + 1]);
    for (int i = 1; i <= N + 1; i++)
        ans[order[i]] = max(pre[0][i - 1], pre[1][i]);
    for (int i = 1; i <= N + 1; i++)
        cout << ans[i] << " \n"[i == N + 1];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...