ztzxsy 2013-10-23 05:24:00
点我顶贴
收藏
删除
居然对了!
program wrs;
var
n:integer;
p,m,i:integer;
begin
p:=0;
read(n);
for i:=1 to n do begin
read(m);
p:=p+m;
end;if (p mod 2) =0 then
write(0)
else write(1);
end.
#1 phoenix@2008-06-28 19:13:00
2025
回复
删除
唉``````````````````````````````````
数据```````````````````````````````
#5 yumaosheng@2013-10-23 05:24:00
31664
回复
删除
这才是正解!!
var
n,i,j,p,m:integer;
a:array[1..100] of integer;
f:array[0..5000] of integer;
begin
read(n);
p:=0;
for i:=1 to n do
begin
read(a[i]);
p:=p+a[i];
end;
m:=p;
p:=p div 2;
fillchar(f,sizeof(f),0);
for i:=1 to n do
for j:=p downto 1 do
if (j>=a[i]) and (abs(f[j-a[i]]+a[i]-p)<abs(f[j]-p))
then f[j]:=f[j-a[i]]+a[i];
p:=m-2*f[p];
writeln(p);
end.
无语了