#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <math.h>
using namespace std;
typedef long long int ll;

ll mod=1e9+7;
ll innv[200200];

ll mod_pow(ll a,ll b){
	a%=mod;
	if(b==0)return 1;
	if(b==1)return a;
	ll res=mod_pow(a,b/2)%mod;
	res*=res; res%=mod;
	if(b%2)res*=a;
	return res%mod;
}

int main(){
	cin.tie(nullptr);
	ios::sync_with_stdio(false);
	int n; cin >> n;
	vector<ll> a(n);
	for(int i=0;i<n;i++){
		cin >> a[i];
	}
	innv[0]=1;
	for(ll i=1;i<=150150;i++){
		innv[i]=innv[i-1]*i%mod;
	}
	vector<ll> cnt(n+5,0);
	for(int i=1;i<=n+3;i++){
		cnt[i]=innv[n-1]*mod_pow(i,mod-2)%mod;
		(cnt[i]+=cnt[i-1])%=mod;
	}
	ll ans=0;
	for(int i=0;i<n-1;i++){
		ans+=(a[i+1]-a[i])*cnt[i+1]%mod;
		ans%=mod;
	}
	cout << ans << endl;
}