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 |
这题两个子段是不能连通的,说能连通的都是错的,附AC代码AC代码: program poj2479; const maxn=100005; var a:array[1..maxn] of longint; l,r:array[0..maxn+1] of longint; t,tt,i,n,s,ans:longint; begin readln(n); while n<>0 do begin fillchar(l,sizeof(l),0); fillchar(r,sizeof(r),0); for i:=1 to n do read(a[i]); for i:=1 to n do if l[i-1]>=0 then l[i]:=l[i-1]+a[i] else l[i]:=a[i]; for i:=2 to n do if l[i-1]>l[i] then l[i]:=l[i-1]; for i:=n downto 1 do if r[i+1]>=0 then r[i]:=r[i+1]+a[i] else r[i]:=a[i]; for i:=n-1 downto 1 do if r[i+1]>r[i] then r[i]:=r[i+1]; ans:=-maxlongint; for i:=1 to n-1 do{如果能连通的话应该是从0循环到n才对,但是我试过了,这是错的} begin s:=l[i]+r[i+1]; if s>ans then ans:=s; end; writeln(ans); readln(n); end; end. Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator