結果
| 問題 |
No.151 セグメントフィッシング
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 13:11:40 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,835 bytes |
| コンパイル時間 | 193 ms |
| コンパイル使用メモリ | 82,304 KB |
| 実行使用メモリ | 81,728 KB |
| 最終ジャッジ日時 | 2025-06-12 13:15:03 |
| 合計ジャッジ時間 | 19,951 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 18 WA * 1 |
ソースコード
n, q = map(int, input().split())
events = []
period = 2 * (n - 1)
n_minus_1 = n - 1
for current_time in range(1, q + 1):
parts = input().split()
if parts[0] in ('L', 'R'):
direction = parts[0]
y = int(parts[1])
z = int(parts[2])
events.append((direction, y, current_time, z))
else:
y_query = int(parts[1])
z_query = int(parts[2])
total = 0
for event in events:
dir_e, y_e, t0_e, z_e = event
if t0_e > current_time:
continue
delta = current_time - t0_e
if dir_e == 'R':
initial_steps = n_minus_1 - y_e
if delta <= initial_steps:
pos = y_e + delta
else:
delta_bounce = delta - initial_steps - 1
if delta_bounce < 0:
pos = n_minus_1
else:
remaining = delta_bounce % period
if remaining < n_minus_1:
pos = n_minus_1 - remaining
else:
pos = remaining - n_minus_1
else: # 'L'
initial_steps = y_e
if delta <= initial_steps:
pos = y_e - delta
else:
delta_bounce = delta - initial_steps - 1
if delta_bounce < 0:
pos = 0
else:
remaining = delta_bounce % period
if remaining < n_minus_1:
pos = remaining
else:
pos = 2 * n_minus_1 - remaining
if y_query <= pos < z_query:
total += z_e
print(total)
gew1fw