Cod sursa(job #589816)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 13 mai 2011 21:10:04
Problema Datorii Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.21 kb
var     v:array[1..15000] of longint;
        buf,buf1:array[1..1000000] of byte;
        cod:0..1;
        n,x,y,j:0..15000;
        m,s,i,r,p:longint;
        f,t:text;

begin
  assign(f,'datorii.out');
  rewrite(f);
  assign(t,'datorii.in');
  reset(t);
  settextbuf(f,buf);
  settextbuf(t,buf1);
  readln(t,n,m);
  for i:=1 to n do
    begin
      read(t,p);
      j:=i;
      while j<=n do
        begin
          inc(v[j],p);
          inc(j,j xor (j and (j-1)))
        end;
    end;
  readln(t);
  for i:=1 to m do
    begin
      readln(t,cod,x,y);
      case cod of
      0:  begin
            while x<=n do
              begin
                v[x]:=v[x]-y;
                inc(x,x xor (x and (x-1)));
              end;
          end;
      1:  begin
            s:=0;
            while y>0 do
              begin
                s:=s+v[y];
                dec(y,y xor (y and (y-1)));
              end;
            x:=x-1;
            r:=0;
            while x>0 do
              begin
                r:=r+v[x];
                dec(x,x xor (x and (x-1)));
              end;
            writeln(f,s-r);
          end;
       end;
    end;
  close(t);
  close(f);
end.