結果
問題 |
No.1141 田グリッド
|
ユーザー |
![]() |
提出日時 | 2023-01-31 00:11:38 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,164 bytes |
コンパイル時間 | 268 ms |
コンパイル使用メモリ | 82,204 KB |
実行使用メモリ | 88,376 KB |
最終ジャッジ日時 | 2024-06-30 07:55:45 |
合計ジャッジ時間 | 6,729 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 WA * 13 |
ソースコード
H, W = map(int, input().split()) mod = 10 ** 9 + 7 A = [] ans = 1 zx, zy = -1, -1 for i in range(H): A.append(list(map(int, input().split()))) for j in range(W): ans *= A[i][j] ans %= mod if A[i][j] == 0: if zx == -1: zx, zy = i, j else: print(0) exit() if zx != -1: ans = 1 for i in range(H): for j in range(W): if i == zx: continue if j == zy: continue ans *= A[i][j] ans %= mod DH, DW = [1] * H, [1] * W for i in range(H): for j in range(W): DH[i] *= A[i][j] DH[i] %= mod DW[j] *= A[i][j] DW[j] %= mod for i in range(H): DH[i] = pow(DH[i], mod - 2, mod) for j in range(W): DW[j] = pow(DW[j], mod - 2, mod) Q = int(input()) for i in range(Q): r, c = map(int, input().split()) r, c = r - 1 , c - 1 if zx == -1: print(ans * DH[r] * DW[c] * A[r][c] % mod) else: if zx == r and zy == c: print(ans) else: print(0)