显示原始代码
#include <bits/stdc++.h>
using namespace std;
#define FastIO \
ios::sync_with_stdio(false); \
cin.tie(0), cout.tie(0);
#define endl "\n"
#define ll long long
#define int long long
using i64 = int64_t;
using i128 = __int128;
const int maxN = 2e5 + 10;
const int MOD = 1e9 + 7;
int a[maxN];
int qpow(int a, int b) {
int res = 1;
while (b) {
if (b & 1)
res = res * a % MOD;
a = a * a % MOD;
b >>= 1;
}
return res;
}
int inv(int x) { return qpow(x, MOD - 2); }
void solve() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
int A1 = 0, A2 = accumulate(a + 2, a + 1 + n, 0ll);
int B = 1;
for (int i = 1; i <= n; i++) {
B = (B * a[i]) % MOD;
}
for (int i = 1; i <= n; i++) {
cout << A1 - A2 << ' ';
A1 += a[i], A2 -= a[i + 1];
int k = B * inv(a[i]) % MOD;
cout << k << endl;
}
}
signed main() {
FastIO int t = 1;
while (t--) solve();
return 0;
}