#include #include #include #include #define rep(i,a,b) for(int i=(a);i<(b);i++) #define rrep(i,a,b) for(int i=(b)-1;i>=(a);i--) #define all(x) begin(x),end(x) #define sz(x) (int)(x).size() using namespace std; using namespace atcoder; using ll=long long; using ull=unsigned long long; using ld=long double; using vll=vector; using vvll=vector; using vi=vector; using vvi=vector; using pll=pair; using pi=pair; // using mint=modint998244353; using mint=modint1000000007; // using mint2=static_modint<2>; // using BoostPoint=boost::polygon::point_data; // using Voronoi=boost::polygon::voronoi_diagram; // using mint=LazyMontgomeryModInt<998244353>; using vm=vector; using vvm=vector; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; cin>>N; vi A(N),B(N); rep(i,0,N)cin>>A[i]; rep(i,0,N)cin>>B[i]; int R=0,U=INT_MAX,ans=INT_MAX; vectore; rep(i,0,N){ int x=min(A[i],B[i]),z=max(A[i],B[i]); int y=(x+z)/2; R=max(R,x); U=min(U,z); e.push_back({x,y}); e.push_back({y,z}); } sort(all(e)); for(auto&[t,v]:e){ if(t>=U)break; ans=min(ans,R-t); R=max(R,v); } ans=min(ans,R-U); cout<