結果
問題 |
No.1141 田グリッド
|
ユーザー |
👑 ![]() |
提出日時 | 2025-10-19 20:51:38 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 355 ms / 2,000 ms |
コード長 | 1,397 bytes |
コンパイル時間 | 627 ms |
コンパイル使用メモリ | 82,384 KB |
実行使用メモリ | 100,716 KB |
最終ジャッジ日時 | 2025-10-19 20:51:49 |
合計ジャッジ時間 | 8,869 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 |
ソースコード
# 気合で頑張らなくていいじゃん mod = 10**9+7 H,W = map(int,input().split()) A = [ list(map(int,input().split())) for i in range(H) ] LU = [[ A[i][j] for j in range(W)] for i in range(H)] LD = [[ A[i][j] for j in range(W)] for i in range(H)] RU = [[ A[i][j] for j in range(W)] for i in range(H)] RD = [[ A[i][j] for j in range(W)] for i in range(H)] for i in range(H): for j in range(W-1): LU[i][j+1] *= LU[i][j] LU[i][j+1] %= mod LD[i][j+1] *= LD[i][j] LD[i][j+1] %= mod for i in range(H): for j in range(W-1,0,-1): RU[i][j-1] *= RU[i][j] RU[i][j-1] %= mod RD[i][j-1] *= RD[i][j] RD[i][j-1] %= mod for j in range(W): for i in range(H-1): LU[i+1][j] *= LU[i][j] LU[i+1][j] %= mod RU[i+1][j] *= RU[i][j] RU[i+1][j] %= mod for j in range(W): for i in range(H-1,0,-1): LD[i-1][j] *= LD[i][j] LD[i-1][j] %= mod RD[i-1][j] *= RD[i][j] RD[i-1][j] %= mod Q = int(input()) for _ in range(Q): r,c = map(int,input().split()) r -= 1 c -= 1 ans = 1 if r != 0 and c != 0: ans *= LU[r-1][c-1] if r != 0 and c != W-1: ans *= RU[r-1][c+1] if r != H-1 and c != 0: ans *= LD[r+1][c-1] if r != H-1 and c != W-1: ans *= RD[r+1][c+1] print (ans % mod)