結果
問題 | No.1141 田グリッド |
ユーザー |
![]() |
提出日時 | 2020-07-31 22:07:26 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 253 ms / 2,000 ms |
コード長 | 1,070 bytes |
コンパイル時間 | 246 ms |
コンパイル使用メモリ | 82,360 KB |
実行使用メモリ | 88,256 KB |
最終ジャッジ日時 | 2024-07-06 18:19:35 |
合計ジャッジ時間 | 5,769 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 |
ソースコード
import sys; input = sys.stdin.buffer.readlinesys.setrecursionlimit(10**7)from collections import defaultdictcon = 10 ** 9 + 7; INF = float("inf")def getlist():return list(map(int, input().split()))#処理内容def main():H, W = getlist()table = []for i in range(H):A = getlist()table.append(A)Hsum = [1] * HWsum = [1] * WHzero = [0] * HWzero = [0] * Wzerocnt = 0ALL = 1for i in range(H):for j in range(W):if table[i][j] == 0:Hzero[i] += 1Wzero[j] += 1zerocnt += 1else:ALL = (ALL * table[i][j]) % conWsum[j] = (Wsum[j] * table[i][j]) % conHsum[i] = (Hsum[i] * table[i][j]) % con# print(Hsum)# print(Wsum)# print(ALL)# クエリQ = int(input())for i in range(Q):r, c = getlist()r -= 1; c -= 1z = Hzero[r] + Wzero[c]if table[r][c] == 0:z -= 1if z == zerocnt:ans = ALL * pow(Hsum[r], con - 2, con) * pow(Wsum[c], con - 2, con)if table[r][c] != 0:ans *= table[r][c]ans %= conprint(ans)else:print(0)if __name__ == '__main__':main()