# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
203514 | arman_ferdous | Just Long Neckties (JOI20_ho_t1) | C++14 | 145 ms | 7164 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+100;
int n;
struct data{
int x, idx;
}a[N];
int b[N];
int pre[N], suf[N], ans[N];
int main() {
scanf("%d", &n);
for(int i = 1; i <= n + 1; i++) {
scanf("%d", &a[i].x);
a[i].idx = i;
} for(int i = 1; i <= n; i++) scanf("%d", &b[i]);
sort(a + 1, a + n + 2, [&](data a, data b) {
return a.x < b.x;
});
sort(b + 1, b + n + 1);
for(int i = 1; i <= n; i++)
pre[i] = max(a[i].x - b[i], 0);
for(int i = n; i > 0; i--)
suf[i] = max(a[i + 1].x - b[i], 0);
for(int i = 2; i <= n; i++) pre[i] = max(pre[i], pre[i - 1]);
for(int i = n - 1; i > 0; i--) suf[i] = max(suf[i], suf[i + 1]);
for(int i = 1; i <= n + 1; i++) {
ans[a[i].idx] = max(pre[i - 1], suf[i]);
} for(int i = 1; i <= n + 1; i++)
printf("%d ", ans[i]);
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |