Cod sursa(job #227053)

Utilizator delaremosPopa Mares delaremos Data 3 decembrie 2008 16:29:37
Problema Datorii Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.84 kb
		    var n,m,i,j,t,q,y,x,k:longint;
v:array[1..16000] of longint;   
f,g:text;   
  
function query(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;   
close(f);   
close(g);   
end.