結果
| 問題 |
No.789 範囲の合計
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-07-29 00:54:02 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 998 ms / 1,000 ms |
| コード長 | 922 bytes |
| コンパイル時間 | 197 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 51,080 KB |
| 最終ジャッジ日時 | 2024-07-18 15:25:37 |
| 合計ジャッジ時間 | 10,386 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 15 |
ソースコード
class BIT():
def __init__(self, n):
self.n = n
self.data = [0]*(n+1)
self.el = [0]*(n+1)
def sum(self, i):
s = 0
while i > 0:
s += self.data[i]
i -= i & -i
return s
def add(self, i, x):
# assert i > 0
self.el[i] += x
while i <= self.n:
self.data[i] += x
i += i & -i
def get(self, i, j=None):
if j is None:
return self.el[i]
return self.sum(j) - self.sum(i)
N = int(input())
lsQ = []
ss = set()
ss.add(0)
for i in range(N):
a,x,y = map(int,input().split())
lsQ.append((a,x,y))
if a == 0:
ss.add(x)
else:
ss.add(x)
ss.add(y)
dic = {x:i+1 for i,x in enumerate(sorted(ss))}
ans = 0
BI = BIT(len(ss)+1)
for a,x,y in lsQ:
if a == 0:
BI.add(dic[x],y)
else:
ans += BI.get(dic[x]-1, dic[y])
print(ans)