結果
問題 | No.678 2Dシューティングゲームの必殺ビーム |
ユーザー |
![]() |
提出日時 | 2025-03-26 15:56:16 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 50 ms / 2,000 ms |
コード長 | 1,242 bytes |
コンパイル時間 | 366 ms |
コンパイル使用メモリ | 82,036 KB |
実行使用メモリ | 61,100 KB |
最終ジャッジ日時 | 2025-03-26 15:56:48 |
合計ジャッジ時間 | 1,895 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 18 |
ソースコード
n, xLB, xRB = map(int, input().split())enemies = []for _ in range(n):XL, YU, XR, YD = map(int, input().split())enemies.append((XL, YU, XR, YD))# Initialize blocking_yd for each x in the beam's rangebeam_length = xRB - xLB + 1blocking_yd = [-1] * beam_length # -1 indicates no enemy has covered this x yetfor enemy in enemies:XL, YU, XR, YD = enemy# Calculate overlap with beam's x rangeoverlap_start = max(xLB, XL)overlap_end = min(xRB, XR)if overlap_start > overlap_end:continue # no overlap# Update blocking_yd for each x in the overlapfor x in range(overlap_start, overlap_end + 1):idx = x - xLBif YD > blocking_yd[idx]:blocking_yd[idx] = YD# Determine hit status for each enemyresults = []for enemy in enemies:XL, YU, XR, YD = enemyoverlap_start = max(xLB, XL)overlap_end = min(xRB, XR)if overlap_start > overlap_end:results.append(0)continuehit = Falsefor x in range(overlap_start, overlap_end + 1):idx = x - xLBif blocking_yd[idx] == YD:hit = Truebreakresults.append(1 if hit else 0)# Output the resultsfor res in results:print(res)