結果
問題 |
No.1441 MErGe
|
ユーザー |
![]() |
提出日時 | 2021-03-26 22:22:02 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 693 bytes |
コンパイル時間 | 193 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 120,192 KB |
最終ジャッジ日時 | 2024-11-28 23:53:18 |
合計ジャッジ時間 | 7,795 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 2 WA * 26 |
ソースコード
import sys input=sys.stdin.buffer.readline def Binit(B,siz): while len(B)<siz+1: B.append(0) while len(B)>siz+1: del B[-1] for i in range(siz+1): B[i]=0 B.append(siz) def Badd(B,a,x): z=a+1 while z<=B[-1]: B[z]+=x z+=(z&(-z)) def Bsum(B,a): r=0 z=a+1 while z>0: r+=B[z] z-=(z&(-z)) return r N,Q=map(int,input().split()) A=list(map(int,input().split())) C=[0]*(N+1) for i in range(N): C[i+1]=C[i]+A[i] X=0 B=[] Binit(B,N+1) for i in range(Q): t,l,r=map(int,input().split()) l-=1 if t==1: Badd(B,r+Bsum(B,r+X),r-l-1) X+=r-l-1 else: a,b=l+X,r+X a=Bsum(B,a) b=Bsum(B,b) #print(l+a,r+b,X) print(C[r+b]-C[l+a])