Pagini recente » Cod sursa (job #3143720) | Cod sursa (job #687409) | Cod sursa (job #3194241) | Cod sursa (job #1945662) | Cod sursa (job #790383)
Cod sursa(job #790383)
var a1,a2:array[1..15000] of integer;
i,j,n,rn,m:longint;
f1,f2:text;
c,a,b:integer;
function ceil(n:real):longint;
begin
if frac(n)=0
then ceil:=trunc(n)
else ceil:=trunc(n)+1
end;
function sum(a,b:integer):longint;
var s:longint; i,r1,r2:longint;
begin
s:=0;
r1:=ceil(a/rn);
r2:=ceil(b/rn);
while a<=b do
begin
if (a mod rn=1)and(a+rn<=b)
then begin
s:=s+a2[ceil(a/rn)];
a:=a+rn;
end
else begin
s:=s+a1[a];
a:=a+1;
end
end;
sum:=s;
end;
begin
assign(f1,'datorii.in');
reset(f1);
assign(f2,'datorii.out');
rewrite(f2);
readln(f1,n,m);
rn:=ceil(sqrt(n));
for i:=1 to rn do a2[i]:=0;
for i:=1 to n do
begin
read(f1,a1[i]);
inc(a2[ceil(i/rn)], a1[i]);
end;
for i:=1 to m do
begin
read(f1,c,a,b);
if c=0
then begin
dec(a1[a],b);
dec(a2[ceil(a/rn)], b);
end
else
begin
writeln(f2,sum(a,b));
end;
end;
close(f1);
close(f2);
end.