結果
| 問題 | No.2013 Can we meet? |
| コンテスト | |
| ユーザー |
Kiri8128
|
| 提出日時 | 2022-04-16 14:10:19 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 894 bytes |
| コンパイル時間 | 157 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 277,104 KB |
| 最終ジャッジ日時 | 2024-07-04 21:59:56 |
| 合計ジャッジ時間 | 5,908 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 10 TLE * 1 -- * 24 |
ソースコード
from collections import defaultdict
P = 998244353
def naive():
x = abs(x1 - x2)
y = abs(y1 - y2)
D = defaultdict(int, {(x, y): 1})
ANS = []
for loop in range(n):
for _ in range(2):
nD = defaultdict(int)
for k, v in D.items():
xx, yy = k
for nx, ny, prob in ((xx + 1, yy, alpha), (xx - 1, yy, alpha), (xx, yy + 1, beta), (xx, yy - 1, beta)):
nxy = (nx, ny)
nD[nxy] = (nD[nxy] + v * prob) % P
D = nD
ANS.append(D[(0, 0)])
D[(0, 0)] = 0
ans = 0
for i in range(n):
ans = (ans + ANS[i] * A[i]) % P
return ans
n = int(input())
x1, y1, x2, y2 = map(int, input().split())
a, b = map(int, input().split())
iv = pow(2 * (a + b), P - 2, P)
alpha = a * iv % P
beta = b * iv % P
A = [int(a) for a in input().split()]
print(naive())
Kiri8128