Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

int64

Posted by TN at 2005-07-13 21:29:17 on Problem 2479
In Reply To:我的程序总是WA...能告诉我哪组数据错了么? Posted by:Ruser at 2005-07-13 21:24:57
> 程序说明:
> const
> max=2147483640;
> maxn=50000;
> var
> a:array[1..maxn]  of integer;
> sum:longint;
> start:word;
> min,minw,answer,n,c,k,t:longint;
> f,f2:boolean;
> Procedure init;
> var
>  i:longint;
>   begin
>   readln(n);
>   f2:=true;c:=0;
>   for i:=1 to n do read(a[i]);
>   start:=n+1;
>   for i:=1 to n do if a[i]>0 then begin start:=i;break;end;
>   for i:=start+1 to n do if a[i]>0 then begin inc(c);f2:=false;end;
>   if (c=1)or(f2) then start:=n+1;
>   end;
> Procedure main;
> var
>   i,t,w:longint;
>    begin
>    answer:=a[start];
>    min:=0;sum:=a[start];t:=0;
>    for i:=start+1 to n do
>      begin
>      sum:=sum+a[i];
>      if a[i]>0 then t:=0;
>      if a[i]<0 then t:=t+a[i];
>      if t<min then begin min:=t;minw:=i;end;
>      if sum-min>answer then answer:=sum-min;
>      if sum<0 then begin sum:=0;min:=0;t:=0;end;
>      end;
>    if (start=n+1)or(f2) then
>    begin
>     answer:=0;min:=-max;t:=-max;
>     for i:=1 to n do
>        if a[i]>=min then begin min:=a[i];w:=i;end;
>     for i:=1 to n do
>        if (a[i]>t)and(i<>w) then t:=a[i];
>      if start=n+1  then  answer:=min+t else answer:=a[start]+min;
>     end;
>   end;
> Begin
> Readln(t);
> for k:=1 to t do
> begin
> init;
> main;
> writeln(answer);
> end;
> End.
> 

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator