結果

問題 No.1141 田グリッド
ユーザー convexineq
提出日時 2021-05-10 07:20:06
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 277 ms / 2,000 ms
コード長 617 bytes
コンパイル時間 416 ms
コンパイル使用メモリ 82,468 KB
実行使用メモリ 88,796 KB
最終ジャッジ日時 2024-09-19 11:46:52
合計ジャッジ時間 6,992 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #

MOD = 10**9+7
h,w = map(int,input().split())
a = [list(map(int,input().split())) for _ in range(h)]
r,zr,c,zc = [1]*h, [0]*h, [1]*w, [0]*w
tot = 1
for i in range(h):
    for j in range(w):
        v = a[i][j]
        if v:
            r[i] = r[i]*v%MOD
            c[j] = c[j]*v%MOD
            tot = tot*v%MOD
        else:
            zr[i] += 1
            zc[j] += 1
zt = sum(zr)

Q = int(input())
for _ in range(Q):
    R,C = map(int,input().split())
    R -= 1
    C -= 1
    if zt - zr[R] - zc[C] + (a[R][C]==0):
        print(0)
    else:
        print(tot*pow(r[R]*c[C]%MOD,MOD-2,MOD)%MOD*max(a[R][C],1)%MOD)
0