Cod sursa(job #202068)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 5 august 2008 22:17:39
Problema Datorii Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.71 kb
var n,m,i,j,t,q,y,x,nr,k:longint;
v:array[1..20000] of longint;
f,g:text;

function query(a:longint):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);
read(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;
close(f);
close(g);
end.