Pagini recente » Cod sursa (job #943329) | Cod sursa (job #1840748) | Cod sursa (job #865524) | Cod sursa (job #2758072) | Cod sursa (job #530841)
Cod sursa(job #530841)
var a:array[1..15000] of integer;
v:array[1..15000] of longint;
n,x,y,j,poz:integer;
m,s,i:longint;
f,t:text;
begin
assign(f,'datorii.out');
rewrite(f);
assign(t,'datorii.in');
reset(t);
readln(t,n,m);
for i:=1 to n do
begin
read(t,a[i]);
for j:=i-(i xor (i and (i-1)))+1 to i do
v[i]:=v[i]+a[j];
end;
for i:=1 to m do
begin
read(t,j);
case j of
0: begin
readln(t,x,y);
poz:=x;
while poz<=n do
begin
v[poz]:=v[poz]-y;
poz:=poz+(poz xor (poz and (poz-1)));
end;
end;
1: begin
readln(t,x,y);
s:=0;
poz:=y;
while poz>0 do
begin
s:=s+v[poz];
poz:=poz-(poz xor (poz and (poz-1)));
end;
poz:=x-1;
while poz>0 do
begin
s:=s-v[poz];
poz:=poz-(poz xor (poz and (poz-1)));
end;
writeln(f,s);
end;
end;
end;
close(t);
close(f);
end.