結果
問題 |
No.440 2次元チワワ問題
|
ユーザー |
![]() |
提出日時 | 2025-01-15 03:12:40 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 1,592 bytes |
コンパイル時間 | 1,419 ms |
コンパイル使用メモリ | 82,120 KB |
実行使用メモリ | 844,404 KB |
最終ジャッジ日時 | 2025-01-15 03:13:02 |
合計ジャッジ時間 | 18,196 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 14 MLE * 12 |
ソースコード
import sys input = sys.stdin.readline H, W = map(int, input().split()) MAP = [input().strip() for _ in range(H)] # SCOREとSCORE2を一次元配列に変更 SCORE = [0] * (H * W * W) SCORE2 = [0] * (W * H * H) def calc(h, l): c = 0 cw = 0 now = 0 for i in range(l, W): if MAP[h][i] == "c": c += 1 else: now += cw cw += c SCORE[h * W * W + l * W + i] += now def calc2(h, r): c = 0 cw = 0 now = 0 for i in range(r, -1, -1): if MAP[h][i] == "c": c += 1 else: now += cw cw += c SCORE[h * W * W + i * W + r] += now def calc3(w, l): c = 0 cw = 0 now = 0 for i in range(l, H): if MAP[i][w] == "c": c += 1 else: now += cw cw += c SCORE2[w * H * H + l * H + i] += now def calc4(w, r): c = 0 cw = 0 now = 0 for i in range(r, -1, -1): if MAP[i][w] == "c": c += 1 else: now += cw cw += c SCORE2[w * H * H + i * H + r] += now for i in range(H): for j in range(W): calc(i, j) calc2(i, j) for i in range(W): for j in range(H): calc3(i, j) calc4(i, j) Q = int(input()) for _ in range(Q): a, b, c, d = map(int, input().split()) a -= 1 b -= 1 c -= 1 d -= 1 ANS = 0 for i in range(a, c + 1): ANS += SCORE[i * W * W + b * W + d] for i in range(b, d + 1): ANS += SCORE2[i * H * H + a * H + c] print(ANS)