#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef pair P; #define MOD 1000000007 // 10^9 + 7 #define INF 1000000000 // 10^9 #define LLINF 1LL<<60 ll com[100009]; // com[k] = (N-1)C(k-1) ll a[100009]; // mod付きpower // x^n ll modpow(ll x, ll n) { if (n == 0) return 1LL; else if (n % 2 == 0) return modpow((x*x) % MOD, n / 2) % MOD; else return (modpow((x*x) % MOD, n / 2) * x) % MOD; } // a/bを返す ll divMod(ll a, ll b) { ll res = a * modpow(b, MOD - 2); return res % MOD; } int main() { cin.tie(0); ios::sync_with_stdio(false); /* ll K, L; cin >> K >> L; cout << divMod(K, L)%MOD << " = " << K / L << endl; */ ll N; cin >> N; for (int i = 1; i <= N; i++) cin >> a[i]; com[1] = 1; com[N] = 1; for (ll i = 1; i <= N - 2; i++) { com[i + 1] = (N - i)*com[i]; com[i + 1] %= MOD; com[i + 1] = divMod(com[i + 1], i); } ll ans = 0; for (int i = 1; i <= N; i++) { ans += a[i] * com[i]; ans %= MOD; cout << a[i] << " " << com[i] << endl; } cout << ans << endl; return 0; }