#include // #include #define rng(a) a.begin(),a.end() #define rrng(a) a.rbegin(),a.rend() #define INF 2000000000000000000 #define ll long long #define ull unsigned long long #define ld long double #define pll pair using namespace std; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> N; vector A(N), B(N); for (ll i = 0; i < N; ++i) { cin >> A.at(i); } for (ll i = 0; i < N; ++i) { cin >> B.at(i); } for (ll i = 0; i < N; ++i) { if (A.at(i) > B.at(i)) { swap(A.at(i), B.at(i)); } } if (N == 1) { cout << 0 << "\n"; return 0; } multiset st; for (ll i = 0; i < N; ++i) { st.insert({A.at(i), i}); } ll m = INF; ll ans = (*st.rbegin()).first - min(m, ((*st.begin()).first)); while (!st.empty()) { pll now = *st.begin(); st.erase(st.begin()); ll a = now.first, index = now.second; if (a == B.at(index)) { m = min(m, a); } else if (a * 2 == A.at(index) + B.at(index)) { st.insert({B.at(index), index}); } else { st.insert({(A.at(index) + B.at(index)) / 2, index}); } if (!st.empty()) { ans = min(ans, (*st.rbegin()).first - min(m, ((*st.begin()).first))); } } cout << ans << "\n"; }