Cod sursa(job #383097)

Utilizator alin1303Bulai Alin alin1303 Data 15 ianuarie 2010 17:29:51
Problema Datorii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.76 kb
01.program tribute_to_mars;
02.type vect=array[1..15000] of longint;
03.var f,g:text;
04.    c:vect;
05.    n,m,ad,i,poz,bit,x,a,b,sum1,sum2:longint;
06.begin
07.assign(f,'datorii.in'); reset(f);
08.assign(g,'datorii.out'); rewrite(g);
09.read(f,n,m);
10.for i:=1 to n do begin
11.            read(f,ad);
12.            poz:=i;
13.            while poz<=n do begin
14.              c[poz]:=c[poz]+ad;
15.              bit:=(poz and (poz-1)) xor poz;
16.              poz:=poz+bit;
17.              end;
18.                        end;
19.for i:=1 to m do begin
20.         read(f,x,a,b);
21.               if x=1 then begin
22.                           sum1:=0;
23.                           poz:=b;
24.                            while poz>0 do begin
25.                                 sum1:=sum1+c[poz];
26.                                 bit:=(poz and (poz-1)) xor poz;
27.                                 poz:=poz-bit;
28.                                 end;
29.                           sum2:=0;
30.                           poz:=a-1;
31.                           while poz>0 do begin
32.                                 sum2:=sum2+c[poz];
33.                                 bit:=(poz and (poz-1)) xor poz;
34.                                 poz:=poz-bit;
35.                                 end;
36.                           writeln(g,sum1-sum2);
37.                           end
38.                           else begin
39. 
40.            ad:=-b;
41.            poz:=a;
42.            while poz<=n do begin
43.              c[poz]:=c[poz]+ad;
44.              bit:=(poz and (poz-1)) xor poz;
45.               poz:=poz+bit;
46.              end;
47.                          end;
48. 
49.         end;
50.close(f); close(g);
51.end.