#include <bits/stdc++.h>
using namespace std;
int n;
long long fac[1000005], a[1000005], ans, mod = 1e9 + 7;
long long add(long long x) { return x >= mod ? x - mod : x; }
long long mul(long long x, long long y) { return x * y % mod; }
long long Pow(long long a, long long b) {
  long long rec = 1;
  for (; b; b >>= 1, a = mul(a, a))
    if (b & 1) rec = mul(rec, a);
  return rec;
}
int main() {
  scanf("%d", &n);
  fac[0] = 1;
  for (int i = 1; i <= n; i++) fac[i] = mul(fac[i - 1], i);
  for (int i = 1; i <= n; i++) scanf("%lld", &a[i]);
  sort(a + 1, a + n + 1);
  for (int i = 1, j = 1; i <= n; i = j + 1) {
    while (a[i] == a[j + 1]) j++;
    if (j == n) break;
    ans = add(ans +
              mul(a[i], mul(j - i + 1, mul(fac[n], Pow(n - i + 1, mod - 2)))));
  }
  printf("%lld", ans);
}
