結果
問題 | No.1618 Convolution? |
ユーザー |
|
提出日時 | 2021-07-22 22:28:58 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 213 ms / 2,000 ms |
コード長 | 1,247 bytes |
コンパイル時間 | 272 ms |
コンパイル使用メモリ | 82,076 KB |
実行使用メモリ | 141,588 KB |
最終ジャッジ日時 | 2024-07-17 18:36:46 |
合計ジャッジ時間 | 6,912 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 15 |
ソースコード
import sys INF = float('inf') #10**20,2**63,float('inf') MOD = 10**9 + 7 MOD2 = 998244353 #from collections import defaultdict def solve(): def II(): return int(sys.stdin.readline()) def LI(): return list(map(int, sys.stdin.readline().split())) def LC(): return list(input()) def IC(): return [int(c) for c in input()] def MI(): return map(int, sys.stdin.readline().split()) N = II() A = LI() A = [0] + A + [0] Add = [0]*(2*N+1) for n in range(1,N+1): Add[n] = Add[n-1] + A[n] A.reverse() Add.reverse() for n in range(1,N): Add[n] = Add[n-1] + A[n] A.reverse() Add.reverse() #print(Add) B = LI() B = [0] + B + [0] BAdd = [0] * (2 * N + 1) for n in range(1,N+1): BAdd[n] = BAdd[n-1] + B[n] B.reverse() BAdd.reverse() for n in range(1,N+1): BAdd[n] = BAdd[n-1] + B[n] B.reverse() BAdd.reverse() C = [0]*(2*N+1) for c in range(1,2*N+1): if c <= N: C[c] += Add[c] + BAdd[c]+ C[c-1] else: C[c] += Add[c] + BAdd[c] + C[c-1] - N*A[c-N] - N*B[c-N] print(*C[:2*N]) return solve() #sys.setrecursionlimit(10 ** 6)#再帰関数ではコメントにしないこと!!