結果
問題 |
No.1074 増殖
|
ユーザー |
![]() |
提出日時 | 2025-04-24 12:32:09 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,574 bytes |
コンパイル時間 | 175 ms |
コンパイル使用メモリ | 82,632 KB |
実行使用メモリ | 95,600 KB |
最終ジャッジ日時 | 2025-04-24 12:33:19 |
合計ジャッジ時間 | 1,860 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 5 WA * 7 |
ソースコード
import sys def main(): input = sys.stdin.read().split() idx = 0 N = int(input[idx]) idx += 1 L = None R = None B = None T = None current_area = 0 for _ in range(N): xa = int(input[idx]) ya = int(input[idx+1]) xb = int(input[idx+2]) yb = int(input[idx+3]) idx +=4 l, r = xa, xb b, t = ya, yb new_area = (r - l) * (t - b) if L is None: # First rectangle added = new_area L, R, B, T = l, r, b, t current_area = added else: # Calculate overlap with the current union's bounding box overlap_l = max(L, l) overlap_r = min(R, r) overlap_b = max(B, b) overlap_t = min(T, t) if overlap_l < overlap_r and overlap_b < overlap_t: overlap_area = (overlap_r - overlap_l) * (overlap_t - overlap_b) else: overlap_area = 0 # Check if new rectangle fully contains the current union's bounding box if l <= L and r >= R and b <= B and t >= T: overlap_area = current_area added = new_area - overlap_area # Update the bounding box L = min(L, l) R = max(R, r) B = min(B, b) T = max(T, t) current_area += added print(added) if __name__ == '__main__': main()