#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 110;
const int INF = 1 << 28;
const double EPS = 1e-9;
const double PI = 3.14159265358979;
int n, d;
int a[MAX_N];
int x[MAX_N], y[MAX_N];
int g[MAX_N][MAX_N];
int main() {
  cin >> n >> d;
  for (int i = (1); i < (n - 1); i++) cin >> a[i];
  for (int i = (0); i < (n); i++) cin >> x[i] >> y[i];
  for (int i = (0); i < (n); i++)
    for (int j = (0); j < (n); j++) {
      g[i][j] = d * (abs(x[i] - x[j]) + abs(y[i] - y[j]));
      if (i != j) g[i][j] -= a[j];
    }
  for (int k = (0); k < (n); k++)
    for (int i = (0); i < (n); i++)
      for (int j = (0); j < (n); j++) g[i][j] = min(g[i][j], g[i][k] + g[k][j]);
  cout << g[0][n - 1] << endl;
  return 0;
}
