提出 #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 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |