# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1167609 | chikien2009 | Just Long Neckties (JOI20_ho_t1) | C++20 | 1 ms | 320 KiB |
#include <bits/stdc++.h>
using namespace std;
inline void setup()
{
#ifndef ONLINE_JUDGE
freopen("test.inp", "r", stdin);
freopen("test.out", "w", stdout);
#endif
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
int n, b[200000], pre[200000], suf[200000], res[200001];
pair<int, int> a[200001];
int main()
{
setup();
cin >> n;
for (int i = 0; i < n + 1; ++i)
{
cin >> a[i].first;
a[i].second = i;
}
for (int i = 0; i < n; ++i)
{
cin >> b[i];
}
sort(a, a + n + 1);
sort(b, b + n);
for (int i = 0; i < n; ++i)
{
pre[i] = max((i == 0 ? 0 : pre[i - 1]), a[i].first - b[i]);
}
for (int i = n - 1; i >= 0; --i)
{
suf[i] = max((i == n - 1 ? 0 : suf[i + 1]), a[i + 1].first - b[i]);
}
for (int i = 0; i <= n; ++i)
{
if (i == 0)
{
res[a[i].second] = suf[0];
}
else if (i == n)
{
res[a[i].second] = pre[n - 1];
}
else
{
res[a[i].second] = max(pre[i - 1], suf[i]);
}
}
for (int i = 0; i <= n; ++i)
{
cout << res[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... |