p1161.dpr
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· DPR 代码 · 共 104 行
DPR
104 行
program p1161;
{$APPTYPE CONSOLE}
const
maxn = 25;
maxTime = 16 * 12;
type
Tnum = array[0..maxn] of Longint;
var
part , p , n , Time : Longint;
first , down , Cost : Tnum;
heap , leave : Tnum;
keep , ans : Tnum;
procedure init;
var i : Longint;
begin
readln ( Time ); Time := Time * 12;
for i := 1 to n do read ( first [i] ); readln;
for i := 1 to n do read ( down [i] ); readln;
Cost [1] := 0;
for i := 2 to n do read ( Cost [i] ); readln;
for i := 3 to n do inc ( Cost [i] , Cost [i - 1] );
end;
procedure sort ( right : Longint );
var i , j , t : Longint;
begin
for i := 1 to right - 1 do
for j := i + 1 to right do
if ( leave [heap [i]] < leave [heap [j]] ) or
( ( leave [heap [i]] = leave [heap [j]] ) and ( heap [i] > heap [j] )) then
begin
t := heap [i]; heap [i] := heap [j]; heap [j] := t;
end;
end;
procedure work ( Stop : Longint; var Keep : Tnum );
var i , LeftTime : Longint;
begin
fillchar ( Keep , sizeof ( keep ) , 0 );
LeftTime := Time - Cost [Stop];
for i := 1 to Stop do leave [i] := first [i];
for i := 1 to Stop do heap [i] := i;
sort ( Stop );
while ( leave [heap [1]] > 0 ) and ( LeftTime > 0 ) do
begin
dec ( LeftTime );
inc ( Keep [heap [1]] );
inc ( Keep [0] , leave [heap [1]] );
dec ( leave [heap [1]] , down [heap [1]] );
sort ( Stop );
end;
inc ( Keep [1] , LeftTime );
end;
procedure main;
var Stop : Longint;
begin
fillchar ( Ans , sizeof ( Ans ) , 0 ); Ans [1] := Time;
for Stop := 1 to n do
begin
work ( Stop , keep );
if keep [0] > Ans [0] then Ans := keep;
end;
end;
procedure print;
var i : Longint;
begin
for i := 1 to n do
begin
if ( i > 1 ) then write ( ', ' );
write ( Ans [i] * 5 );
end;
writeln;
writeln ( 'Number of fish expected: ' , Ans [0] );
end;
begin
assign ( input , 'p.in' ); reset ( input );
assign ( output , 'p.out' ); rewrite ( output );
readln ( part );
for p := 1 to part do
begin
readln ( n );
while ( n > 0 ) do
begin
init;
main;
print;
readln ( n );
if n > 0 then writeln;
end;
if p < part then writeln;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?