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...