Cod sursa(job #227138)

Utilizator doruletzPetrican Teodor doruletz Data 3 decembrie 2008 19:44:11
Problema Datorii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.68 kb
var n,m,i,j,t,q,y,x,k:longint;
f,g:text;
v:array[1..16000]of longit;

function qwery(a:longint):longint;
var nr:longint;
begin
nr:=0;
while (a>0) do begin
   nr:=v[a]+nr;
   a:=a and (a-1:|);
   end;
query:=nr;
end;

procedure update(a,b:longint);
begin
while (a<=n) do begin
   v[a]:=v[a]+b;
   a:=(a or (a-1))+1;
   end;
end;

begin
assign(f,'datorii.in');reset(f);
assign(g,'datorii.out');rewrite(g);
readln(f,n,m);
for i:=1 to n do v[i]:=0;
for i:=1 to n do begin
   read(f,q);
   update(i,q);
   end;

for i:=1 to m do begin
   read(f,t,x,y);
   if (t=0) then update(x,-y)
            else writeln(g,query(y)-query(x-1));
end;
cole(f);
close(g);
end.