#include <bits/stdc++.h>
using namespace std;
const int tam = 100010;
const int MOD = 1000000007;
const int MOD1 = 998244353;
const double EPS = 1e-9;
const double PI = acos(-1);
long long as[100];
pair<long long, long long> po[100];
long long dis[100][100];
long long dist(pair<int, int> a, pair<int, int> b) {
  return abs(a.first - b.first) + abs(a.second - b.second);
}
long long di[100];
int main() {
  int n, d;
  cin >> n >> d;
  for (int i = 1; i < n - 1; i++) cin >> as[i];
  for (int i = 0; i < n; i++) cin >> po[i].first >> po[i].second;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++)
      if (i != j) dis[i][j] = d * dist(po[i], po[j]) - as[j];
  }
  for (int i = 1; i < n; i++) di[i] = 1e17;
  for (int k = 0; k < n; k++)
    for (int i = 0; i < n; i++)
      for (int j = 0; j < n; j++)
        if (dis[i][j] > dis[i][k] + dis[k][j])
          dis[i][j] = dis[i][k] + dis[k][j];
  cout << dis[0][n - 1] << '\n';
  return 0;
}
