結果
問題 | No.2574 Defect-free Rectangles |
ユーザー |
👑 ![]() |
提出日時 | 2023-12-01 08:36:41 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 917 ms / 2,000 ms |
コード長 | 1,164 bytes |
コンパイル時間 | 355 ms |
コンパイル使用メモリ | 82,500 KB |
実行使用メモリ | 222,332 KB |
最終ジャッジ日時 | 2024-09-26 15:11:42 |
合計ジャッジ時間 | 6,684 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 |
ソースコード
from collections import dequeH, W, N = map(int, input().split())A = []B = []for i in range(N):a, b = map(int, input().split())A.append(a - 1)B.append(b - 1)c = [[0 for _ in range(W)] for _ in range(H)]for i in range(N):c[A[i]][B[i]] = 1length = [[0 for _ in range(W)] for _ in range(H)]for j in range(W):if c[H - 1][j] == 0:length[H - 1][j] = 1else:length[H - 1][j] = 0for i in reversed(range(H - 1)):for j in range(W):if c[i][j] == 0:length[i][j] = length[i + 1][j] + 1else:length[i][j] = 0# print(length)ans = 0dq = deque()dq.append([-1, -1])now = 0for i in range(H):for j in range(W):idx = jwhile True:if len(dq) == 0:breakheight, width = dq.pop()if height < length[i][j]:dq.append([height, width])breaknow -= height * widthidx -= widthnow += length[i][j] * (j - idx + 1)ans += nowdq.append([length[i][j], j - idx + 1])while len(dq):dq.pop()now = 0print(ans)