Pagini recente » Cod sursa (job #1392324) | Cod sursa (job #2058465) | Cod sursa (job #2831217) | Cod sursa (job #1927168) | Cod sursa (job #50858)
Cod sursa(job #50858)
program tribute_to_mars;
type vect=array[1..15000] of longint;
var f,g:text;
c:vect;
n,m,ad,i,poz,bit,x,a,b,sum1,sum2:longint;
begin
assign(f,'datorii.in'); reset(f);
assign(g,'datorii.out'); rewrite(g);
read(f,n,m);
for i:=1 to n do begin
read(f,ad);
poz:=i;
while poz<=n do begin
c[poz]:=c[poz]+ad;
bit:=(poz and (poz-1)) xor poz;
poz:=poz+bit;
end;
end;
for i:=1 to m do begin
read(f,x,a,b);
if x=1 then begin
sum1:=0;
poz:=b;
while poz>0 do begin
sum1:=sum1+c[poz];
bit:=(poz and (poz-1)) xor poz;
poz:=poz-bit;
end;
sum2:=0;
poz:=a-1;
while poz>0 do begin
sum2:=sum2+c[poz];
bit:=(poz and (poz-1)) xor poz;
poz:=poz-bit;
end;
writeln(g,sum1-sum2);
end
else begin
ad:=-b;
poz:=a;
while poz<=n do begin
c[poz]:=c[poz]+ad;
bit:=(poz and (poz-1)) xor poz;
poz:=poz+bit;
end;
end;
end;
close(f); close(g);
end.