Pagini recente » Cod sursa (job #175292) | Cod sursa (job #2358776) | Cod sursa (job #1400244) | Cod sursa (job #1096826) | Cod sursa (job #197480)
Cod sursa(job #197480)
var v:array[1..20000]of longint;
n,i,j,k,l,m,a,b,c,s1,s2:longint;
f1,f2:text;
begin
assign(f1,'datorii.in');
assign(f2,'datorii.out');
reset(f1);
rewrite(f2);
readln(f1,n,m);
for i:=1 to n do
begin
read(f1,k);
l:=i;
while l<=n do
begin
v[l]:=v[l]+k;
l:=(l or(l-1))+1;
end;
end;
for i:=1 to m do
begin
read(f1,a,b,c);
if a=0 then begin while b<=n do
begin
v[b]:=v[b]-c;
b:=(b or(b-1))+1;
end;
end
else begin s1:=0;
s2:=0;
b:=b-1;
while b>0 do
begin
s1:=s1+v[b];
b:=b and(b-1);
end;
while c>0 do
begin
s2:=s2+v[c];
c:=c and(c-1);
end;
writeln(f2,s2-s1);
end;
end;
close(f1);
close(f2);
end.