Cod sursa(job #2127)

Utilizator Programmer01Mierla Laurentiu Marian Programmer01 Data 16 decembrie 2006 01:06:10
Problema Datorii Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.76 kb
program datorii;
var c:array[1..15000] of qword;
    a:array[1..15000] of 1..1000;
    n:1..15000;
    i,p,q,poz:longint;
    cod:0..1;
    k,j:qword;
    f,g:text;
begin
assign(f,'datorii.in');
reset(f);
readln(f,n,i);
for i:=1 to n do
read(f,a[i]);
readln(f);
i:=0;
repeat
i:=i+1;
p:=i-((i xor (i-1)) and i)+1;
c[i]:=0;
for q:=p to i do
c[i]:=c[i]+a[q];
until i=n;
assign(g,'datorii.out');
rewrite(g);
repeat
readln(f,cod,p,q);
if cod=0 then begin
while p<=n do
begin
c[p]:=c[p]-q;
p:=p+(p xor (p-1)) and p;
end;
end
else begin
k:=0;
while q>0 do begin
k:=k+c[q];
q:=q-(q xor (q-1)) and q;
end;
j:=0;
p:=p-1;
while p>0 do begin
j:=j+c[p];
p:=p-(p xor (p-1)) and p;
end;
writeln(g,k-j);
end;
until eof(f);
close(f);
close(g);
end.