显示原始代码
#include <stdio.h>
#define MOD 1000000007
long long modInverse(long long a, long long mod);
long long power(long long a, long long b, long long mod);
int main() {
int n;
scanf("%d", &n);
int a[n];
long long totalSum = 0;
long long totalProduct = 1;
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
totalSum += a[i];
totalProduct = (totalProduct * a[i]) % MOD;
}
long long leftSum = 0;
for (int i = 0; i < n; i++) {
long long rightSum = totalSum - leftSum - a[i];
long long A_i = leftSum - rightSum;
long long B_i = 0;
if (a[i] != 0) {
B_i = (totalProduct * modInverse(a[i], MOD)) % MOD;
}
printf("%lld %lld\n", A_i, B_i);
leftSum += a[i];
}
return 0;
}
long long modInverse(long long a, long long mod) { return power(a, mod - 2, mod); }
long long power(long long a, long long b, long long mod) {
long long result = 1;
while (b > 0) {
if (b % 2 == 1) {
result = (result * a) % mod;
}
a = (a * a) % mod;
b /= 2;
}
return result;
}