#YHM15009. 数组乘积

数组乘积

数组乘积

题目描述

给定一个长度为 nn 的整数数组 aa(数组下标从 11 开始,即 a=[a1,a2,,an]a = [a_1, a_2, \cdots, a_n])。对于每个位置 ii1in1 \leq i \leq n),你需要计算并输出除 aia_i 这个数之外,数组中其余所有数的乘积。由于最终结果可能非常大,你需要将结果对 p=109+7p = 10^9 + 7 取模后输出。

输入格式

  • 第一行:一个整数 nn,表示数组的长度。
  • 第二行:nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_n,表示给定的整数数组。

输出格式

输出 nn 个整数,第 ii 个整数为除 aia_i 外数组中其余所有数的乘积对 p=109+7p = 10^9 + 7 取模后的结果,每个整数占一行。

数据范围

  • 对于 30%30\% 的数据,1n1001 \leq n \leq 100
  • 对于 60%60\% 的数据,1n100001 \leq n \leq 10000
  • 对于 100%100\% 的数据,1n1051 \leq n \leq 10^51ai1001 \leq a_i \leq 100

样例数据

输入

3
2 3 4

输出

12
8
6

解释

对于第一个位置(i=1i = 1),除 a1=2a_1 = 2 外其余数的乘积为 a2×a3=3×4=12a_2\times a_3 = 3\times4 = 12,对 p=109+7p = 10^9 + 7 取模后仍为 1212;对于第二个位置(i=2i = 2),除 a2=3a_2 = 3 外其余数的乘积为 a1×a3=2×4=8a_1\times a_3 = 2\times4 = 8,对 p=109+7p = 10^9 + 7 取模后为 88;对于第三个位置(i=3i = 3),除 a3=4a_3 = 4 外其余数的乘积为 a1×a2=2×3=6a_1\times a_2 = 2\times3 = 6,对 p=109+7p = 10^9 + 7 取模后为 66