Cod sursa(job #280037)

Utilizator THE_GAMEAndrei Alexandru THE_GAME Data 13 martie 2009 10:18:42
Problema Datorii Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.05 kb
program datorii;      
var c:array[1..15000] of longint;      
    a:array[1..15000] of 1..1000;      
    n:1..15000;      
    i,p,q,poz:longint;      
    cod:0..1;      
    k,j:longint;      
    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.