Cod sursa(job #289715)

Utilizator b_ady20Branescu Adrian b_ady20 Data 26 martie 2009 22:13:24
Problema Datorii Scor 0
Compilator fpc Status done
Runda aa Marime 0.65 kb
var i,m,n,p,q,y,x:longint;
v:array[1..15000] of longint;
function f(x:longint):longint;
var nr:longint;
begin
nr:=0;
while (x>0) do begin
nr:=v[x]+nr;
x:=x and (x-1);
end;
f:=nr;
end;
procedure caract(i,q:longint);
begin
while (i<=q) do begin
v[i]:=v[i]+q;
i:=(i or (i-1))+1;
end;
end;
begin
assign(input,'datorii.in');
reset(input);
assign(output,'datorii.out');
rewrite(output);
readln(input,n,m);
for i:=1 to n do
v[i]:=0;
for i:=1 to n do begin
read(input,q);
caract(i,q);
end;
for i:=1 to m do begin
read (input,p,x,y);
if p=0 then
caract(x,-y)
else
writeln(output,f(y)-f(x-1));
end;
close(input);
close(output);
end.