var
a:array[-21..100,-79..100] of longint;
c:array[0..100,0..3] of longint;
t,k,n:longint;
procedure init;
var i,j:longint;
begin
read(t,k);
readln(n);
for i:=1 to n do
readln(c[i,1],c[i,2],c[i,3]);
end;
procedure work;
var i,j,s:longint;
begin
for i:=-21 to t do
for j:=-79 to k do
if (i>0) or (j>0) then a[i,j]:=maxint;
for i:=1 to n do
for j:=t downto 1 do
for s:=k downto 1 do
if (a[j,s]>a[j-c[i,1],s-c[i,2]]+c[i,3]) then
a[J,S]:=a[j-c[i,1],s-c[i,2]]+c[i,3];
writeln(a[t,k]);
end;
begin
init;
work;
end.
有两点挂掉!
大牛的程序(ac了)
program s1;
var
f:array[-21..21,-79..79]of longint;
a,b,c:array[1..1000]of integer;
i,j,k,n,y,d,max,min:longint;
begin
readln(y,d);
readln(n);
for i:=1 to n do readln(a[i],b[i],c[i]);
for i:=-21 to 0 do
for j:=-79 to 0 do
f[i,j]:=0;
for i:=-21 to y do
for j:=-79 to d do
if (i>0) or (j>0) then f[i,j]:=maxint;
for i:=1 to n do
for j:=y downto 1 do
for k:=d downto 1 do
if f[j-a[i],k-b[i]]+c[i]<f[j,k] then f[j,k]:=f[j-a[i],k-b[i]]+c[i];
write(f[y,d]);
end.
觉得很一样,为什么不对呢?