Submission #47798544


Source Code Expand

#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 SortedList

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

#XをSortedListとして定義。初期値は(A-B,A+B)。
#SortedListなので重複すると困るのだが、よく考えるとべつに重複しても困らなかった。
X=SortedList([A-B,A+B])

#クエリを処理
for _ in range(Q):
    t,a,b=map(int,input().split())
    if t==1:
        #要素を追加する。SortedListなので要素が重複するが、別に困らなかった。
        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)

Submission Info

Submission Time
Task B - Abs Abs Function
User navel_tos
Language Python (PyPy 3.10-v7.3.12)
Score 500
Code Size 1247 Byte
Status AC
Exec Time 1341 ms
Memory 128876 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 34
Set Name Test Cases
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
Case Name Status Exec Time Memory
00_sample_01.txt AC 123 ms 86092 KiB
00_sample_02.txt AC 122 ms 86076 KiB
00_sample_03.txt AC 123 ms 85880 KiB
01_rand1_01.txt AC 1295 ms 125656 KiB
01_rand1_02.txt AC 1321 ms 128876 KiB
01_rand1_03.txt AC 1302 ms 125932 KiB
01_rand1_04.txt AC 1303 ms 123852 KiB
01_rand1_05.txt AC 1292 ms 121244 KiB
01_rand1_06.txt AC 1308 ms 126080 KiB
01_rand1_07.txt AC 1341 ms 126380 KiB
01_rand1_08.txt AC 911 ms 113264 KiB
01_rand1_09.txt AC 909 ms 112084 KiB
01_rand1_10.txt AC 911 ms 109768 KiB
01_rand1_11.txt AC 923 ms 110412 KiB
01_rand1_12.txt AC 909 ms 113692 KiB
01_rand1_13.txt AC 906 ms 110804 KiB
01_rand1_14.txt AC 928 ms 114048 KiB
02_rand2_01.txt AC 1024 ms 109300 KiB
02_rand2_02.txt AC 1031 ms 110668 KiB
02_rand2_03.txt AC 1019 ms 108496 KiB
02_rand2_04.txt AC 986 ms 110256 KiB
02_rand2_05.txt AC 981 ms 109664 KiB
02_rand2_06.txt AC 973 ms 104712 KiB
02_rand2_07.txt AC 1286 ms 122320 KiB
02_rand2_08.txt AC 1265 ms 121884 KiB
02_rand2_09.txt AC 1292 ms 124040 KiB
02_rand2_10.txt AC 670 ms 99772 KiB
02_rand2_11.txt AC 687 ms 100876 KiB
02_rand2_12.txt AC 692 ms 99572 KiB
02_rand2_13.txt AC 856 ms 114484 KiB
02_rand2_14.txt AC 859 ms 116832 KiB
02_rand2_15.txt AC 848 ms 117712 KiB
03_test_01.txt AC 123 ms 86108 KiB
03_test_02.txt AC 658 ms 105640 KiB