#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 10;
const int maxn5 = 5e3 + 10;
const int maxnt = 1.2e6 + 10;
const int maxn3 = 1e3 + 10;
const int mod = 1e9 + 7;
const int ssq = 460;
const long long inf = 1e18;
long long dp[2][maxn5], a[maxn5], b[maxn5], c[maxn5], d[maxn5], x[maxn5];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, s, e;
  cin >> n >> s >> e;
  s--;
  e--;
  for (int i = 0; i < n; i++) cin >> x[i];
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++) cin >> b[i];
  for (int i = 0; i < n; i++) cin >> c[i];
  for (int i = 0; i < n; i++) cin >> d[i];
  if (n == 2)
    return cout << x[1] - x[0] + (s < e ? d[s] + a[e] : c[s] + b[e]) << endl, 0;
  fill(dp[1], dp[1] + n + 10, inf);
  dp[1][0] = 0;
  for (int i = 0; i < n; i++) {
    long long val = 0;
    if (i > 0) val = x[i] - x[i - 1];
    for (int j = 0; j <= n + 1; j++) {
      dp[i % 2][j] = inf;
      dp[(i + 1) % 2][j] += j * 2 * val;
      if (i > e) dp[(i + 1) % 2][j] -= val;
      if (i > s) dp[(i + 1) % 2][j] -= val;
    }
    for (int j = 1; j <= n; j++) {
      dp[i % 2][j] =
          min(dp[i % 2][j], dp[(i + 1) % 2][j - 1] + (i == s ? 0 : b[i]) +
                                (i == e ? 0 : d[i]));
      if (i != e && (j > 1 || i < s || i == n - 1 || (i == s && s < e)))
        dp[i % 2][j] =
            min(dp[i % 2][j], dp[(i + 1) % 2][j] + c[i] + (i == s ? 0 : b[i]));
      if (i != s && (j > 1 || i < e || i == n - 1 || (i == e && e < s)))
        dp[i % 2][j] =
            min(dp[i % 2][j], dp[(i + 1) % 2][j] + a[i] + (i == e ? 0 : d[i]));
      if (i != s && i != e && (i < e || i < s || j + 1 > 2 || i == n - 1))
        dp[i % 2][j] = min(dp[i % 2][j], dp[(i + 1) % 2][j + 1] + a[i] + c[i]);
    }
  }
  cout << dp[(n - 1) % 2][1] << endl;
}
