显示原始代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 10, mod = 1e9 + 7;
int a[N], sum[N], fac;
inline int read() {
int x = 0, f = 1;
char c = getchar();
while (c < '0' || c > '9') {
if (c == '-')
f = -1;
c = getchar();
}
while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
int qpow(int x, int k) {
int res = 1LL;
while (k) {
if (k & 1)
res = res * x % mod;
x = x * x % mod;
k >>= 1;
}
return res % mod;
}
signed main() {
int n = read();
sum[0] = 0;
fac = 1LL;
for (int i = 1; i <= n; i++) a[i] = read(), sum[i] = sum[i - 1] + a[i];
for (int i = 1; i <= n; i++) fac = fac * a[i] % mod;
for (int i = 1; i <= n; i++) {
int aa = sum[i - 1] - (sum[n] - sum[i]);
int bb = qpow(a[i], mod - 2);
printf("%lld %lld\n", aa, bb * fac % mod);
}
return 0;
}