#include <bits/stdc++.h>
using namespace std;
int read() {
  int x = 0, pos = 1;
  char ch = getchar();
  for (; !isdigit(ch); ch = getchar())
    if (ch == '-') pos = 0;
  for (; isdigit(ch); ch = getchar()) x = (x << 1) + (x << 3) + ch - '0';
  return pos ? x : -x;
}
const int N = 2e5 + 200;
const int mod = 469762049;
long long n, x[N], f[N], g[N], d[N];
long long stk[N], vs[N], top = 0, vp[N];
double solve(double w) {
  if (w > (x[stk[1]] + vs[stk[1]])) return -1e13;
  int l = 1, r = top + 1;
  while (l < r - 1) {
    int mid = (l + r) / 2;
    if (w <= (x[stk[mid]] + vs[stk[mid]]))
      l = mid;
    else
      r = mid;
  }
  assert(vs[stk[l]] > 0);
  return 0.5 * x[stk[l]];
}
int main() {
  n = read();
  for (int i = 0; i <= n + 1; i++) x[i] = read();
  for (int i = 1; i <= n; i++) d[i] = read();
  stk[0] = 0;
  for (int i = 1; i <= n; i++) {
    while (top > 0 && x[i] > vs[stk[top]]) top--;
    f[i] = x[stk[top]];
    vs[i] = 2ll * d[i] + f[i];
    while (top >= 1 && vs[i] >= vs[stk[top]]) top--;
    stk[++top] = i;
  }
  stk[0] = n + 1;
  top = 0;
  for (int i = n; i >= 1; --i) {
    while (top > 0 && x[i] < vp[stk[top]]) top--;
    g[i] = x[stk[top]];
    vp[i] = g[i] - 2ll * d[i];
    while (top >= 1 && vp[i] <= vp[stk[top]]) top--;
    stk[++top] = i;
  }
  double ans = 1e13;
  for (int i = 1; i <= n; i++) {
    vp[i] = x[i] - vp[i];
    vs[i] = vs[i] - x[i];
    if (g[i] - f[i] <= 2ll * d[i]) {
      printf("0");
      return 0;
    }
    ans = min(ans, 0.5 * (g[i] - f[i]));
    if (f[i] == x[0] && vp[i] > 0) {
      ans = min(ans, 0.5 * (x[i] - x[0]));
    }
    if (g[i] == x[n + 1] && vs[i] > 0) {
      ans = min(ans, 0.5 * (x[n + 1] - x[i]));
    }
  }
  ans = min(ans, 0.5 * (x[n + 1] - x[0]));
  top = 0;
  for (int i = 1; i <= n; i++) {
    if (top && vp[i] > 0) {
      long long nx = 0.5 * x[i] - solve(x[i] - vp[i]);
      if (nx < ans) {
        ans = nx;
        solve(x[i] - vp[i]);
      }
    }
    if (vs[i] > 0) {
      while (top >= 1 && (x[i] + vs[i]) >= (x[stk[top]] + vs[stk[top]])) top--;
      stk[++top] = i;
    }
  }
  printf("%.1f", ans);
  return 0;
}
