結果
| 問題 | No.2013 Can we meet? |
| コンテスト | |
| ユーザー |
Kiri8128
|
| 提出日時 | 2022-04-16 14:10:19 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
TLE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 894 bytes |
| 記録 | |
| コンパイル時間 | 330 ms |
| コンパイル使用メモリ | 85,120 KB |
| 実行使用メモリ | 376,132 KB |
| 最終ジャッジ日時 | 2026-03-26 04:28:56 |
| 合計ジャッジ時間 | 91,063 ms |
|
ジャッジサーバーID (参考情報) |
judge1_1 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 10 TLE * 25 |
ソースコード
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