Pagini recente » Istoria paginii utilizator/stefantenie | Monitorul de evaluare | Diferente pentru flux-si-cuplaj intre reviziile 35 si 11 | Cod sursa (job #316615) | Cod sursa (job #202068)
Cod sursa(job #202068)
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.