結果
| 問題 | No.877 Range ReLU Query |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-05-19 22:11:09 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 633 ms / 2,000 ms |
| コード長 | 925 bytes |
| 記録 | |
| コンパイル時間 | 188 ms |
| コンパイル使用メモリ | 85,504 KB |
| 実行使用メモリ | 161,548 KB |
| 最終ジャッジ日時 | 2026-05-19 22:11:20 |
| 合計ジャッジ時間 | 9,350 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge3_0 |
| 純コード判定待ち |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 20 |
ソースコード
def aa(s,v):
d=1
while s<len(fen):
if s&d:
fen[s]=(fen[s][0]+1,fen[s][1]+v)
s+=d
d<<=1
def bb(s):
res1,res2=0,0
d=1
while s:
if s&d:
res1+=fen[s][0];res2+=fen[s][1]
s-=d
d<<=1
return res1,res2
n,q=map(int,input().split())
ans=[0]*q
count=[0]*q
a=list(map(int,input().split()))
s=set(a)
x=[[] for i in range(n+1)]
m=[[] for i in range(n+1)]
z=[0]*q
for i in range(q):
q,w,e,r=map(int,input().split())
x[w-1].append((r,i));s.add(r)
m[e-1].append((r,i));z[i]=r
v=1<<len(s).bit_length()
y={};p=1;fen=[(0,0)]*(len(s)+1)
for i in reversed(sorted(list(s))):
y[i]=p;p+=1
for i in range(n):
for j,l in x[i]:
c,b=bb(y[j])
count[l]-=c;ans[l]-=b
aa(y[a[i]],a[i])
for j,l in m[i]:
c,b=bb(y[j])
count[l]+=c;ans[l]+=b
for i in range(len(ans)):
print(ans[i]-count[i]*z[i])