#include <bits/stdc++.h>
using namespace std;
long long n, s, t, m[5007], dis[5007][5007], x[5007], num[5007][4], res, k;
long long read() {
  long long num = 0;
  char c = getchar();
  while (c < '0' || c > '9') c = getchar();
  while (c >= '0' && c <= '9') num = num * 10 + c - '0', c = getchar();
  return num;
}
int main() {
  n = read();
  s = m[1] = read();
  t = m[2] = read();
  for (int i = 1; i <= n; i++) x[i] = read();
  for (int j = 0; j < 4; j++)
    for (int i = 1; i <= n; i++) num[i][j] = read();
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) {
      if (i == j) continue;
      if (x[i] > x[j])
        dis[i][j] = abs(x[i] - x[j]) + num[i][2] + num[j][1];
      else
        dis[i][j] = abs(x[i] - x[j]) + num[i][3] + num[j][0];
    }
  res = dis[s][t];
  for (int i = 1; i <= n; i++) {
    if (i == s || i == t) continue;
    long long len = 1e18, w = 0;
    k++;
    for (int j = 1; j <= k; j++)
      if (len > dis[m[j]][i] + dis[i][m[j + 1]] - dis[m[j]][m[j + 1]]) {
        w = j;
        len = dis[m[j]][i] + dis[i][m[j + 1]] - dis[m[j]][m[j + 1]];
      }
    res += len;
    for (int j = i + 2; j > w + 1; j--) m[j] = m[j - 1];
    m[w + 1] = i;
  }
  cout << res << endl;
  return 0;
}
