Thứ Ba, 3 tháng 5, 2022

CANDY1046 Pascal

const
        fin='candy1046.inp';fon='candy1046.out';
var
        i,n,j,s,min:longint;
        a:array [1..1000] of longint;
        f:array[0..35,0..100000] of longint;
procedure nhap;
        begin

        readln(n);
        for i:=1 to n do
        begin
                read(a[i]);
                inc(s,a[i]);
        end;
        end;
procedure qhd;
var i,j,min,imin:longint;
begin
    for i:=0 to n do f[i,0]:=1;
    for i:=1 to n do
        for j:=1 to s do
        begin
            f[i,j]:=0;
            if f[i-1,j]=1 then f[i,j]:=1;
            if j-a[i]>=0 then
                if f[i-1,j-a[i]]=1 then f[i,j]:=1;
        end;
    min:=10000000;
    for i:=1 to s do
        if (f[n][i]=1) and (abs(2*i-s)<min) then
            min:=abs(2*i-s);
    write(min); 
end;

begin
    assigN(input,fin);reset(input);
    assign(output,fon);rewrite(output);
    nhap;
    qhd;
end.

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.