結果

問題 No.259 セグメントフィッシング+
ユーザー lam6er
提出日時 2025-03-26 15:54:20
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 2,146 bytes
コンパイル時間 495 ms
コンパイル使用メモリ 82,888 KB
実行使用メモリ 124,712 KB
最終ジャッジ日時 2025-03-26 15:55:17
合計ジャッジ時間 5,931 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 2 WA * 3 TLE * 1 -- * 17
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys

def main():
    input = sys.stdin.read().split()
    ptr = 0
    N = int(input[ptr])
    ptr += 1
    Q = int(input[ptr])
    ptr += 1
    queries = []
    for _ in range(Q):
        type_ = input[ptr]
        ptr += 1
        t = int(input[ptr])
        ptr += 1
        y = int(input[ptr])
        ptr += 1
        z = int(input[ptr])
        ptr += 1
        queries.append((type_, t, y, z))
    
    fishes = []
    for q in queries:
        if q[0] in ('L', 'R'):
            typ, t, y, z = q
            fishes.append((typ, t, y, z))
        else:
            _, T, y_query, z_query = q
            total = 0
            for fish in fishes:
                typ, t0, y0, cnt = fish
                delta = T - t0
                if delta < 0:
                    continue
                if typ == 'R':
                    if delta <= (N-1 - y0):
                        x = y0 + delta
                    else:
                        s = N-1 - y0
                        rem = delta - s
                        rem -= 1
                        if rem < 0:
                            x = y0 + s
                        else:
                            rem = rem % (2*(N-1))
                            if rem <= (N-1):
                                x = (N-1) - rem
                            else:
                                rem -= (N-1)
                                x = rem
                else:  # 'L'
                    if delta <= y0:
                        x = y0 - delta
                    else:
                        s = y0
                        rem = delta - s
                        rem -= 1
                        if rem < 0:
                            x = y0 - s
                        else:
                            rem = rem % (2*(N-1))
                            if rem <= (N-1):
                                x = rem
                            else:
                                rem -= (N-1)
                                x = (N-1) - rem
                if y_query <= x < z_query:
                    total += cnt
            print(total)

if __name__ == '__main__':
    main()
0