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 |
怎么才能过?总是显示Runtime ErrorIn Reply To:steven is sure to win ? Posted by:william1089 at 2005-07-20 17:35:49 这个在TP,FP中都调试过,没问题啊? {pascal} {$N+} program adsf; type arr1 = array[1..24]of integer; var text, i: integer; string1: Array[1..24]of string; s: string; procedure ww(i: integer); var alltime, problem, j, bill, bill1, linus, linus1, steve, steve1, o, o1: integer; time1: arr1; time2: arr1; time3: arr1; function max(var time: arr1): integer; var i, j, o: integer; begin j:=1; for i:=0 to problem do if j<time[i] then begin j := time[i]; o:=i; end; time[o]:=0; max := j; end; procedure t1_2; var i, j, o: integer; begin for j:=1 to problem+1 do time2[j] := max(time1); end; procedure t2_3; var i: integer; begin for i:=1 to problem do time3[i]:=time2[problem+1-i]; end; procedure try(time: array of integer; alltime: integer); var i, j: integer; begin i := 0; repeat dec(alltime, time[i]); inc(i); until (alltime-time[i]<0) or (i=problem); o:=i; for j:=0 to o-1 do o1:=o1+time[j]; end; procedure print(o: integer); var j: integer; begin case o of 1: begin string1[i]:='Steve wins with '; o:=steve; j:=steve1; end; 2: begin string1[i]:='Linus wins with '; o:=linus; j:=linus1; end; 3: begin string1[i]:='Bill wins with '; o:=bill; j:=bill1; end; end; str(o, s); string1[i] := string1[i] + s; string1[i] := string1[i] + ' solved problem'; if o<>1 then string1[i]:=string1[i]+'s'; string1[i]:=string1[i]+' and a score of '; str(j, s); string1[i] := string1[i] + s + '.'; end; begin fillchar(time1, sizeof(time1), 0); fillchar(time2, sizeof(time2), 0); fillchar(time3, sizeof(time3), 0); read(alltime); read(problem); while (alltime<30) or (alltime>1440) or (problem<2) or (problem>24) do begin writeln('ERROR'); read(alltime, problem); end; for j:=1 to problem do read(time1[j]); o1:=0; o:=0; try(time1, alltime); bill:=o; bill1:=o1; o1:=0; t1_2; try(time2, alltime); linus:=o; linus1:=o1; o1:=0; t2_3; try(time3, alltime); steve:=o; steve1:=o1; inc(i); if i<>text then ww(i); if (steve>bill) and (steve>linus) then print(1) else if (steve=bill) and (bill1>=steve1) then print(1) else if (steve=linus) and (steve1<=linus1) then print(1) else if (bill>linus) or ((bill=linus) and (bill1<=linus1))then print(2) else print(3); end; begin readln(text); while text <= 0 do begin writeln('ERROR'); readln(text); end; ww(0); for i:=1 to 24 do if string1[i]<>'' then begin WriteLn('Senario #', i, ':'); writeln(string1[i]); end; end. Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator