#include <bits/stdc++.h>
using namespace std;
int p = 1000000007;
long long modpow(long long a, long long b) {
  long long res = 1;
  while (b > 0) {
    if (b % 2 == 1) res = res * a % p;
    a = a * a % p;
    b >>= 1;
  }
  return res;
}
long long modinv(long long a) { return modpow(a, p - 2); }
long long modfact(long long n) {
  long long res = 1;
  for (int i = 1; i <= n; i++) {
    res = (res * i) % p;
  }
  return res;
}
long long modlast(long long n) {
  long long res = 1;
  for (int i = 3; i <= n; i++) {
    res = ((i - 1) * res % p + modfact(i - 2)) % p;
  }
  return res;
}
int main() {
  int N;
  cin >> N;
  vector<int> x(N);
  for (int i = 0; i < N; i++) {
    cin >> x[i];
  }
  long long res = 0;
  long long coef = modfact(N - 1);
  for (int i = 0; i < N - 1; i++) {
    res = (res + x[i] * coef) % p;
    coef = coef * (i + 1) % p;
    coef = coef * modinv(i + 2) % p;
  }
  res = p - res;
  res += x[N - 1] * modlast(N) % p;
  cout << res % p << endl;
}
