Cod sursa(job #227139)

Utilizator doruletzPetrican Teodor doruletz Data 3 decembrie 2008 19:47:37
Problema Datorii Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.91 kb
var n,m,i,j,t,q,x,y,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.