#include <bits/stdc++.h>
using namespace std;
const long long inf = 1LL << 62;
long long x[5010];
long long a[5010];
long long b[5010];
long long c[5010];
long long d[5010];
int n, s, e;
long long dp[5010][5010];
long long go(int ind, int groups) {
  if (groups < 0) return inf;
  if (ind == 1) {
    long long ans = go(ind + 1, 1);
    if (ind == s) {
      ans += d[ind];
    } else if (ind == e) {
      ans += b[ind];
    } else {
      ans += b[ind] + d[ind];
    }
    return ans;
  }
  if (groups == 0) return inf;
  if (ind == n + 1) {
    if (groups != 1) return inf;
    return 0LL;
  }
  if (dp[ind][groups] != inf) return dp[ind][groups];
  int openspots = 0;
  openspots += 2 * groups;
  bool leftclosed = ind > s;
  bool rightclosed = ind > e;
  if (leftclosed) openspots--;
  if (rightclosed) openspots--;
  if (openspots <= 0) return inf;
  long long cbuff = openspots * (x[ind] - x[ind - 1]);
  if (ind == s) {
    long long ans = inf;
    long long o1 = c[ind] + go(ind + 1, groups);
    long long o2 = d[ind] + go(ind + 1, groups + 1);
    ans = min(o1, o2);
    return dp[ind][groups] = ans + cbuff;
  }
  if (ind == e) {
    long long ans = inf;
    long long o1 = a[ind] + go(ind + 1, groups);
    long long o2 = b[ind] + go(ind + 1, groups + 1);
    ans = min(o1, o2);
    return dp[ind][groups] = ans + cbuff;
  }
  long long ans = inf;
  long long o1 = b[ind] + d[ind] + go(ind + 1, groups + 1);
  long long o2 = inf;
  if (groups >= 2) {
    o2 = a[ind] + c[ind] + go(ind + 1, groups - 1);
  }
  long long o3 = inf;
  if (!(groups == 1 && leftclosed)) {
    o3 = b[ind] + c[ind] + go(ind + 1, groups);
  }
  long long o4 = inf;
  if (!(groups == 1 && rightclosed)) {
    o4 = a[ind] + d[ind] + go(ind + 1, groups);
  }
  ans = min(ans, o1);
  ans = min(ans, o2);
  ans = min(ans, o3);
  ans = min(ans, o4);
  ans += cbuff;
  return dp[ind][groups] = ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  for (int i = 0; i < 5010; i++) fill(dp[i], dp[i] + 5010, inf);
  cin >> n >> s >> e;
  for (int i = 1; i <= n; i++) cin >> x[i];
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 1; i <= n; i++) cin >> b[i];
  for (int i = 1; i <= n; i++) cin >> c[i];
  for (int i = 1; i <= n; i++) cin >> d[i];
  cout << go(1, 0) << endl;
}
