#include <bits/stdc++.h>
#define PII pair <int, int>
#define int long long
#define ST string
#define DB double
#define fr(x, y, z) for(int x = y; x <= z; x ++ )
#define dfr(x, y, z) for(int x = y; x >= z; x -- )
using namespace std;
const int N = 100010, MOD = 1e9 + 7;
int n, s, mx, a[N], f[N];
int qp(int x, int y)
{
int res = 1;
while(y)
{
if(y & 1) res = res * x % MOD;
x = x * x % MOD; y >>= 1;
}
return res;
}
int add(int x, int y)
{ return (x % MOD + y % MOD) % MOD; }
int mul(int x, int y)
{ return x % MOD * y % MOD; }
int ovr(int x, int y)
{ return x % MOD * qp(y, MOD - 2) % MOD; }
int sub(int x, int y)
{ return (x % MOD + MOD - y % MOD) % MOD; }
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n;
fr(i, 1, n) cin >> a[i];
fr(i, 1, n) s = (s + a[i]) % MOD;
fr(i, 1, n) mx = max(mx, a[i]);
f[1] = ovr(mul(s - 1, s - 1), s);
f[2] = sub(f[1] * 2, 1);
fr(i, 2, mx) f[i + 1] = sub(f[i] * 2, add(f[i - 1], ovr(s - 1, s - i)));
int res = 0;
fr(i, 1, n) res = add(res, f[a[i]]);
cout << res << '\n';
return 0;
}
/*
2f[1] = f[2] + 1
f[1] = (s - 1)(f[1] - f[2]) + (s - 2)(s - 1)
-> f[1] = (s - 1) ^ 2 / s
*/