PersonalCorpus 版 (精华区)

153620 04:27:19 4 Mar 2002
Bozhang,HIT,P.R.China 1005 Pascal Accepted 0.03 sec 69K


var
    w:array[1..20] of integer;
    s,t:array[0..2048] of integer;
    res,i,j,k,l,r,n:integer;
    sk,sl,tk,tl:integer;
begin
    read(n);
    for i:=1 to n do begin
        while eoln(input) do readln;
        read(w[i]);
    end;
    if n=1 then begin writeln(w[1]); halt end;
    k:=0; l:=0;
    for i:=1 to n div 2 do begin
        r:=l;
        for j:=k to l do begin
            inc(r);s[r]:=abs(s[j]+w[i]);
            inc(r);s[r]:=abs(s[j]-w[i]);
        end;
        k:=l+1; l:=r;
    end;
    sk:=k; sl:=l;
    k:=0; l:=0;
    for i:=(n div 2)+1 to n do begin
        r:=l;
        for j:=k to l do begin
            inc(r);t[r]:=abs(t[j]+w[i]);
            inc(r);t[r]:=abs(t[j]-w[i]);
        end;
        k:=l+1; l:=r;
    end;
    tk:=k; tl:=l; res:=maxint;
    for i:=sk to sl do
        for j:=tk to tl do begin
            k:=abs(s[i]-t[j]); if k<res then res:=k;
        end;
    writeln(res);
end.
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.532毫秒