| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 545009 | Asymmetry | Just Long Neckties (JOI20_ho_t1) | C++17 | 98 ms | 10824 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.
//Autor: Bartłomiej Czarkowski
#include <bits/stdc++.h>
using namespace std;
#ifdef DEBUG
template<class A,class B>auto&operator<<(ostream&o,pair<A,B>p){return o<<'('<<p.first<<", "<<p.second<<')';}
template<class T>auto operator<<(ostream&o,T x)->decltype(x.end(),o){o<<'{';int i=0;for(auto e:x)o<<(", ")+2*!i++<<e;return o<<'}';}
#define debug(x...) cerr<<"["#x"]: ",[](auto...$){((cerr<<$<<"; "),...);}(x),cerr<<'\n'
#else
#define debug(...) {}
#endif
const int N = 201000;
int n;
int B[N];
int odp[N];
int pref[N];
int suff[N];
pair<int, int> sr[N];
int main() {
scanf("%d", &n);
for (int i = 1; i <= n + 1; ++i) {
scanf("%d", &sr[i].first);
sr[i].second = i;
}
for (int i = 1; i <= n; ++i) {
scanf("%d", &B[i]);
}
sort(sr + 1, sr + 2 + n);
sort(B + 1, B + 1 + n);
for (int i = 1; i <= n; ++i) {
pref[i] = max(pref[i - 1], max(0, sr[i].first - B[i]));
}
for (int i = n + 1; i > 1; --i) {
suff[i] = max(suff[i + 1], max(0, sr[i].first - B[i - 1]));
}
for (int i = 1; i <= n + 1; ++i) {
odp[sr[i].second] = max(pref[i - 1], suff[i + 1]);
}
for (int i = 1; i <= n + 1; ++i) {
printf("%d ", odp[i]);
}
printf("\n");
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... | ||||
