結果

問題 No.1141 田グリッド
ユーザー brthyyjpbrthyyjp
提出日時 2021-03-20 14:56:19
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 604 ms / 2,000 ms
コード長 1,070 bytes
コンパイル時間 161 ms
コンパイル使用メモリ 82,300 KB
実行使用メモリ 95,300 KB
最終ジャッジ日時 2024-11-21 00:43:09
合計ジャッジ時間 9,642 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 37 ms
52,668 KB
testcase_01 AC 37 ms
53,616 KB
testcase_02 AC 39 ms
52,328 KB
testcase_03 AC 40 ms
52,528 KB
testcase_04 AC 38 ms
53,112 KB
testcase_05 AC 37 ms
53,360 KB
testcase_06 AC 38 ms
52,832 KB
testcase_07 AC 36 ms
53,480 KB
testcase_08 AC 65 ms
71,372 KB
testcase_09 AC 58 ms
66,416 KB
testcase_10 AC 67 ms
70,556 KB
testcase_11 AC 64 ms
69,352 KB
testcase_12 AC 67 ms
70,192 KB
testcase_13 AC 574 ms
92,336 KB
testcase_14 AC 604 ms
95,300 KB
testcase_15 AC 584 ms
84,924 KB
testcase_16 AC 591 ms
85,336 KB
testcase_17 AC 576 ms
84,912 KB
testcase_18 AC 194 ms
81,496 KB
testcase_19 AC 193 ms
81,980 KB
testcase_20 AC 187 ms
81,576 KB
testcase_21 AC 579 ms
83,828 KB
testcase_22 AC 570 ms
84,108 KB
testcase_23 AC 573 ms
84,464 KB
testcase_24 AC 208 ms
82,208 KB
testcase_25 AC 219 ms
82,136 KB
testcase_26 AC 219 ms
82,192 KB
testcase_27 AC 220 ms
82,620 KB
testcase_28 AC 221 ms
81,940 KB
testcase_29 AC 187 ms
81,116 KB
testcase_30 AC 197 ms
82,068 KB
testcase_31 AC 207 ms
82,264 KB
testcase_32 AC 186 ms
81,424 KB
testcase_33 AC 186 ms
81,932 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
import io, os
input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline

h, w = map(int, input().split())
A = [list(map(int, input().split())) for _ in range(h)]
mod = 1000000007

X = [[1]*(w+1) for i in range(h+1)]
total0 = 0
row0 = [0]*h
col0 = [0]*w
for i in range(h):
    for j in range(w):
        if A[i][j] != 0:
            X[i+1][j+1] = X[i+1][j]*X[i][j+1]*pow(X[i][j],mod-2,mod)*A[i][j]
        else:
            X[i+1][j+1] = X[i+1][j]*X[i][j+1]*pow(X[i][j],mod-2,mod)*1
            total0 += 1
            row0[i] += 1
            col0[j] += 1
        X[i+1][j+1] %= mod

def rect(r1, c1, r2, c2):
    res = X[r2][c2]*pow(X[r2][c1],mod-2, mod)*pow(X[r1][c2],mod-2, mod)*X[r1][c1]
    return res%mod

#print(X)
#print(X[h][w]%mod)

q = int(input())
for i in range(q):
    r, c = map(int, input().split())
    r, c = r-1, c-1
    z = total0-row0[r]-col0[c]
    if A[r][c] == 0:
        z += 1
    if z > 0:
        print(0)
    else:
        ans = rect(r+1, c+1, h, w)*rect(0, c+1, r, w)*rect(r+1, 0, h, c)*rect(0, 0, r, c)
        print(ans%mod)
0