提出 #47798402


ソースコード 拡げる

#ARC155B Abs Abs Function

'''
問題概要:
X = [A-B, A+B] から開始する。Q個のタスクを処理せよ。
・Xにa-b,a+bを追加する。
・a≦x≦b を満たすXの要素があれば、0を出力。
  そうでなければ、a,bに最も近いXの値を出力。
'''
from sortedcontainers import SortedSet

#入力受取
Q,A,B=map(int,input().split())

#XをSortedSetとして定義。初期値は(A-B,A+B)。
X=SortedSet([A-B,A+B])

#クエリを処理
for _ in range(Q):
    t,a,b=map(int,input().split())
    if t==1: X.add(a-b); X.add(a+b)
    if t==2:
        #a <= x <= b を満たすx∈Xがあれば、0を出力。これはbisectで可能。
        Lt,Rt=X.bisect_left(a),X.bisect_right(b)
        if Rt-Lt>0: print(0)
        #そうでなければ、これらに最も近い要素を出力する。
        else:
            ans=10**18
            if Lt>0: ans=min(ans,a-X[Lt-1])
            if Rt<len(X): ans=min(ans,X[Rt]-b)
            print(ans)

提出情報

提出日時
問題 B - Abs Abs Function
ユーザ navel_tos
言語 Python (PyPy 3.10-v7.3.12)
得点 500
コード長 1009 Byte
結果 AC
実行時間 1374 ms
メモリ 174776 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 3
AC × 34
セット名 テストケース
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_rand1_01.txt, 01_rand1_02.txt, 01_rand1_03.txt, 01_rand1_04.txt, 01_rand1_05.txt, 01_rand1_06.txt, 01_rand1_07.txt, 01_rand1_08.txt, 01_rand1_09.txt, 01_rand1_10.txt, 01_rand1_11.txt, 01_rand1_12.txt, 01_rand1_13.txt, 01_rand1_14.txt, 02_rand2_01.txt, 02_rand2_02.txt, 02_rand2_03.txt, 02_rand2_04.txt, 02_rand2_05.txt, 02_rand2_06.txt, 02_rand2_07.txt, 02_rand2_08.txt, 02_rand2_09.txt, 02_rand2_10.txt, 02_rand2_11.txt, 02_rand2_12.txt, 02_rand2_13.txt, 02_rand2_14.txt, 02_rand2_15.txt, 03_test_01.txt, 03_test_02.txt
ケース名 結果 実行時間 メモリ
00_sample_01.txt AC 119 ms 85844 KiB
00_sample_02.txt AC 121 ms 86012 KiB
00_sample_03.txt AC 122 ms 85960 KiB
01_rand1_01.txt AC 1352 ms 158292 KiB
01_rand1_02.txt AC 1370 ms 160712 KiB
01_rand1_03.txt AC 1371 ms 156936 KiB
01_rand1_04.txt AC 1367 ms 159592 KiB
01_rand1_05.txt AC 1350 ms 159236 KiB
01_rand1_06.txt AC 1356 ms 157984 KiB
01_rand1_07.txt AC 1374 ms 156504 KiB
01_rand1_08.txt AC 926 ms 133864 KiB
01_rand1_09.txt AC 925 ms 133924 KiB
01_rand1_10.txt AC 925 ms 136160 KiB
01_rand1_11.txt AC 938 ms 138472 KiB
01_rand1_12.txt AC 926 ms 136064 KiB
01_rand1_13.txt AC 944 ms 136016 KiB
01_rand1_14.txt AC 938 ms 134772 KiB
02_rand2_01.txt AC 1065 ms 140516 KiB
02_rand2_02.txt AC 1061 ms 143704 KiB
02_rand2_03.txt AC 1060 ms 144584 KiB
02_rand2_04.txt AC 999 ms 140272 KiB
02_rand2_05.txt AC 1008 ms 139888 KiB
02_rand2_06.txt AC 1006 ms 141244 KiB
02_rand2_07.txt AC 1321 ms 154584 KiB
02_rand2_08.txt AC 1306 ms 158228 KiB
02_rand2_09.txt AC 1328 ms 158452 KiB
02_rand2_10.txt AC 727 ms 157592 KiB
02_rand2_11.txt AC 772 ms 156440 KiB
02_rand2_12.txt AC 740 ms 156892 KiB
02_rand2_13.txt AC 945 ms 174776 KiB
02_rand2_14.txt AC 969 ms 172960 KiB
02_rand2_15.txt AC 932 ms 170052 KiB
03_test_01.txt AC 150 ms 85912 KiB
03_test_02.txt AC 685 ms 129792 KiB