给定一个数组arr,返回不包含本位置值的累乘数组
例如,arr=[2,3,1,4],返回[12, 8, 24, 6],即除自己外,其他位置上的累乘
[要求]
时间复杂度为,额外空间复杂度为
第一行有两个整数N, P。分别表示序列长度,模数(即输出的每个数需要对此取模)
接下来一行N个整数表示数组内的数
输出N个整数表示答案
4 100000007 2 3 1 4
12 8 24 6
N,P = map(int,input().split()) array = list(map(int,input().split())) l = [0 for _ in range(N+1)] r = [0 for _ in range(N+1)] l[0] = 1 r[N] = 1 for i in range(N): l[i+1] = l[i] * array[i] % P for i in range(N-1,-1,-1): r[i] = r[i+1] * array[i] % P answer = [] for i in range(N): answer.append(l[i]*r[i+1]%P) print(' '.join(map(str,answer)))