#include <bits/stdc++.h>
int i, m, d[100100], MaxD;
long long f1, f, Ans, _[100100], n;
long long Quick(long long a, long long b) {
  long long c = 1;
  for (; b; b >>= 1) {
    if (b & 1) c = (c * a) % 1000000007;
    a = (a * a) % 1000000007;
  }
  return c;
}
int main() {
  scanf("%d", &m);
  for (i = 0; i < m; i++) {
    scanf("%d", d + i);
    n += d[i];
    if (d[i] > MaxD) MaxD = d[i];
  }
  for (i = 1; i <= MaxD; i++)
    _[i] = (_[i - 1] + Quick(n - i, 1000000007 - 2)) % 1000000007;
  f1 = ((n - 1) * (n - 1)) % 1000000007 * (Quick(n, 1000000007 - 2)) %
       1000000007;
  for (i = 0; i < m; i++) {
    f = (d[i] * f1 -
         (n - 1) * (1ll * d[i] - 1 - ((n - d[i]) * _[d[i] - 1] % 1000000007))) %
        1000000007;
    Ans = (Ans + f + 1000000007) % 1000000007;
  }
  printf("%I64d\n", Ans);
  return 0;
}
