結果
| 問題 |
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)#再帰関数ではコメントにしないこと!!