Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
我写的有问题 求帮忙 不知大家看懂没program poj3468; type sb=record l,r:longint; h:double; end; var n,q,i,j,l,r,w,w1:Longint; max,h:double; a:array[1..3000000] of double; s:array[1..200000] of sb; x:string; procedure js(w,l,r:longint); begin s[w].l:=l;s[w].r:=r; if l=r then begin s[w].h:=a[l]; exit; end; js(w*2,l,(l+r) div 2); js(w*2+1,(l+r) div 2+1 ,r); s[w].h:=s[w*2].h+s[w*2+1].h; end; procedure cha(w:longint); var lh,rh:int64; begin if (s[w].l>=l) and (s[w].r<=r) then begin max:=s[w].h+max; exit; end; if (s[w*2].l>=l) and (s[w*2].l<=r) or (s[w*2].r>=l) and (s[w*2].r<=r) or (s[w*2].l<=l) and (s[w*2].r>=r) then cha(w*2); if (s[w*2+1].l>=l) and (s[w*2+1].l<=r) or (s[w*2+1].r>=l) and (s[w*2+1].r<=r) or (s[w*2+1].l<=l) and (s[w*2+1].r>=r) then cha(w*2+1); end; procedure jia(w:longint); begin if s[w].l=s[w].r then begin s[w].h:=h+s[w].h;exit;end; if (s[w*2].l>=l) and (s[w*2].l<=r) or (s[w*2].r>=l) and (s[w*2].r<=r) or (s[w*2].l<=l) and (s[w*2].r>=r) then jia(w*2); if (s[w*2+1].l>=l) and (s[w*2+1].l<=r) or (s[w*2+1].r>=l) and (s[w*2+1].r<=r) or (s[w*2+1].l<=l) and (s[w*2+1].r>=r) then jia(w*2+1); s[w].h:=s[w*2].h+s[w*2+1].h; end; begin readln(n,q); for i:=1 to n do read(a[i]); readln; js(1,1,n); for i:=1 to q do begin readln(x); if x[1]='Q' then begin w:=2+pos(' ',copy(x,3,length(x)-3+1)); val(copy(x,3,w-3),l); val(copy(x,w+1,length(x)-w),r); max:=0;cha(1); writeln(max:0:0); end else begin w:=2+pos(' ',copy(x,3,length(x)-3+1)); val(copy(x,3,w-3),l); w1:=w+pos(' ',copy(x,w+1,length(x)-w)); val(copy(x,w+1,w1-w-1),r); val(copy(x,w1+1,length(x)-w1),h); jia(1); end; end; end. Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator