Submission #740359

#TimeUsernameProblemLanguageResultExecution timeMemory
740359tch1cherinJust Long Neckties (JOI20_ho_t1)C++17
100 / 100
286 ms10796 KiB
#include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; vector<int> A(N + 1), B(N); for (int i = 0; i <= N; i++) { cin >> A[i]; } for (int i = 0; i < N; i++) { cin >> B[i]; } vector<int> order(N + 1); iota(order.begin(), order.end(), 0); sort(order.begin(), order.end(), [&](int i, int j) { return A[i] < A[j]; }); vector<int> pos(N + 1); for (int i = 0; i <= N; i++) { pos[order[i]] = i; } sort(B.begin(), B.end()); vector<int> pref(N + 1), suff(N + 1); for (int i = 0; i < N; i++) { pref[i + 1] = max(pref[i], A[order[i]] - B[i]); } for (int i = N - 1; i >= 0; i--) { suff[i] = max(suff[i + 1], A[order[i + 1]] - B[i]); } for (int i = 0; i <= N; i++) { cout << max(pref[pos[i]], suff[pos[i]]) << " \n"[i == N]; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...