提出 #32057668
ソースコード 拡げる
import math
import bisect
ST = [[] for i in range(800005)]
pre = [[] for i in range(800005)]
val = [0 for i in range(200005)]
lst = [0 for i in range(200005)]
def update(id, l, r, tl, tr, val, time):
if l > tr or r < tl:
return
if l >= tl and r <= tr:
# print("ADD ", l, r)
ST[id].append(time)
if len(pre[id]) > 0:
pre[id].append(pre[id][-1] + val)
else:
pre[id].append(val)
return
m = (l + r) // 2
update(id * 2, l, m, tl, tr, val, time)
update(id * 2 + 1, m + 1, r, tl, tr, val, time)
def query(id, l, r, x, time):
res = 0
if len(pre[id]) == 0 or ST[id][-1] <= time:
res = 0
elif (ST[id][0] >= time):
res = pre[id][-1]
else:
res = pre[id][-1] - pre[id][bisect.bisect_left(ST[id], time, lo=0, hi=len(ST[id])) - 1]
if l == r:
return res
m = (l + r) // 2
if x <= m:
return res + query(id * 2, l, m, x, time)
else:
return res + query(id * 2 + 1, m + 1, r, x, time)
inp = [int(x) for x in input().split()]
n, m, q = inp[0], inp[1], inp[2]
for time in range(1, q + 1):
a = [int(x) for x in input().split()]
if a[0] == 1:
update(1, 1, m, a[1], a[2], a[3], time)
elif a[0] == 2:
val[a[1]] = a[2]
lst[a[1]] = time
else:
print(val[a[1]] + query(1, 1, m, a[2], lst[a[1]]))
提出情報
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
0 / 500 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
example_00.txt, example_01.txt, example_02.txt |
| All |
example_00.txt, example_01.txt, example_02.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| example_00.txt |
RE |
226 ms |
124712 KiB |
| example_01.txt |
RE |
116 ms |
124668 KiB |
| example_02.txt |
RE |
115 ms |
124328 KiB |
| test_00.txt |
RE |
116 ms |
124588 KiB |
| test_01.txt |
RE |
120 ms |
124800 KiB |
| test_02.txt |
RE |
118 ms |
124628 KiB |
| test_03.txt |
RE |
116 ms |
124776 KiB |
| test_04.txt |
RE |
114 ms |
124744 KiB |
| test_05.txt |
RE |
121 ms |
124800 KiB |
| test_06.txt |
RE |
117 ms |
124660 KiB |
| test_07.txt |
RE |
114 ms |
124684 KiB |
| test_08.txt |
RE |
119 ms |
124600 KiB |
| test_09.txt |
RE |
118 ms |
124580 KiB |
| test_10.txt |
RE |
118 ms |
124612 KiB |
| test_11.txt |
RE |
117 ms |
124540 KiB |
| test_12.txt |
RE |
117 ms |
124408 KiB |
| test_13.txt |
RE |
118 ms |
124528 KiB |
| test_14.txt |
RE |
120 ms |
124780 KiB |
| test_15.txt |
RE |
117 ms |
124800 KiB |
| test_16.txt |
RE |
118 ms |
124548 KiB |
| test_17.txt |
RE |
117 ms |
124600 KiB |
| test_18.txt |
RE |
117 ms |
124548 KiB |
| test_19.txt |
RE |
117 ms |
124688 KiB |
| test_20.txt |
RE |
116 ms |
124908 KiB |
| test_21.txt |
RE |
118 ms |
124524 KiB |
| test_22.txt |
RE |
115 ms |
124612 KiB |
| test_23.txt |
RE |
115 ms |
124608 KiB |
| test_24.txt |
RE |
122 ms |
124612 KiB |
| test_25.txt |
RE |
116 ms |
124868 KiB |
| test_26.txt |
RE |
116 ms |
124600 KiB |
| test_27.txt |
RE |
118 ms |
124748 KiB |
| test_28.txt |
RE |
118 ms |
124684 KiB |
| test_29.txt |
RE |
117 ms |
124804 KiB |
| test_30.txt |
RE |
117 ms |
124548 KiB |