p1880.pas

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· PAS 代码 · 共 46 行

PAS
46
字号
{$I-,R-,Q-}
// A Dynimic Programming program
PROGRAM p1880;

VAR
        n,i,j                   :Longint;
        total , max             :Longint;
        num                     :array[1..100]of Longint;
        whether                 :array[0..100,0..22500]of Boolean;

PROCEDURE Main;
var
         i , j , k              : Longint;
begin
for k := 1 to n do
        begin
        for i := ( n + 1 ) div 2 downto 1 do
                for j := max downto num [i] do
                        if not whether [i] [j]  and whether [i - 1] [j - num [k]] then whether [i] [j] := true;
        end;

for i:= max downto 0 do
        if whether [( n + 1 ) div 2 ] [i] or whether [ n div 2 ] [i] then break;

writeln ( i,' ',total -i );
end;

BEGIN
while not eof do
        begin
        fillchar(whether,sizeof(whether),0);
        whether [0] [0] :=true;

        total:=0;
        readln(n);
        for i:=1 to n do
                begin
                readln(num[i]);
                inc(total,num[i]);
                end;

        max := total div 2;

        Main;
        end;
END.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?