#include <bits/stdc++.h>
#define int long long
using namespace std;
ostream &operator <<(ostream &out, vector <int> val) {
for (auto v : val) {
out << v << ' ';
}
return out;
}
void solve() {
int n;
cin >> n;
vector <pair <int, int>> val(n + 1);
for (int i = 0; i <= n; ++i) {
cin >> val[i].first;
val[i].second = i;
}
sort(val.begin(), val.end());
vector <int> cur(n);
for (int i = 0; i < n; ++i) {
cin >> cur[i];
}
sort(cur.begin(), cur.end());
vector <int> prev(n + 1, 0), suf(n + 1, 0);
for (int i = 0; i < n; ++i) {
prev[i + 1] = max(prev[i], max(0LL, val[i].first - cur[i]));
}
for (int i = n - 1; i >= 0; --i) {
suf[i] = max(suf[i + 1], max(0LL, val[i + 1].first - cur[i]));
}
vector <pair <int, int>> ans{};
for (int i = 0; i < n + 1; ++i) {
ans.emplace_back(val[i].second, max(prev[i], suf[i]));
}
sort(ans.begin(), ans.end());
for (auto v : ans) {
cout << v.second << ' ';
}
cout << '\n';
}
signed main() {
cin.tie(0);
ios::sync_with_stdio(false);
int t = 1;
solve();
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |