#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
long long kaijou(long long n) {
  if (n <= 1)
    return 1;
  else
    return (n * kaijou(n - 1)) % mod;
}
int main() {
  int n;
  cin >> n;
  long long x[n];
  long long y;
  long long kai = kaijou(n - 1);
  for (int i = 0; i < (n); i++) cin >> x[i];
  for (int i = 0; i < (n); i++) x[i] %= mod;
  y = 1.0 * kai;
  long long sum = 0;
  for (int i = 0; i < (n - 1); i++) {
    sum += y * (x[i + 1] - x[i]);
    sum %= mod;
    y += 1.0 / (i + 2.0) * kai;
    y %= mod;
  }
  cout << sum << endl;
  return 0;
}
