#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MAXN = 3e5 + 5;
const ll MAX = 1e18;
ll n, ans = MAX, val[MAXN], red[MAXN], blue[MAXN];
ll solve(ll l) {
ll out = 0;
vector<ll> rv, bv;
for (int i = 1; i < l; ++i) {
rv.push_back(val[i]);
}
for (int i = l; i < l+n; ++i) {
bv.push_back(val[i]);
}
for (int i = l+n; i <= 2*n; ++i) {
rv.push_back(val[i]);
}
sort(rv.begin(), rv.end());
sort(bv.begin(), bv.end());
for (int i = 0; i < n; ++i) {
out = max(out, abs(rv[i]-red[i+1]));
out = max(out, abs(bv[i]-blue[i+1]));
}
ll out2 = 0;
for (int i = 0; i < n; ++i) {
out2 = max(out2, abs(bv[i]-red[i+1]));
out2 = max(out2, abs(rv[i]-blue[i+1]));
}
return min(out, out2);
}
int main() {
cin >> n;
for (int i = 1; i <= 2*n; ++i) {
cin >> val[i];
}
for (int i = 1; i <= n; ++i) {
cin >> red[i];
}
for (int i = 1; i <= n; ++i) {
cin >> blue[i];
}
sort(red+1, red+1+n);
sort(blue+1, blue+1+n);
for (int i = 1; i <= n+1; ++i) {
ans = min(ans, solve(i));
}
cout << ans << "\n";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |