显示原始代码
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
const int mod = 1e9 + 7;
int n, a[N], ans[N], pre[N], suf[N];
int main(void) {
scanf("%d", &n);
int s = 0, p = 0;
for (int i = 1; i <= n; ++i) {
scanf("%d", &a[i]);
s += a[i];
}
for (int i = 1; i <= n; ++i) {
s -= a[i];
ans[i] = p - s;
p += a[i];
}
pre[0] = 1, suf[n + 1] = 1;
for (int i = 1; i <= n; ++i) pre[i] = 1ll * pre[i - 1] * a[i] % mod;
for (int i = n; i >= 1; --i) suf[i] = 1ll * suf[i + 1] * a[i] % mod;
for (int i = 1; i <= n; ++i) {
printf("%d ", ans[i]);
int res = 1ll * pre[i - 1] * suf[i + 1] % mod;
printf("%d\n", res);
}
return 0;
}