标准输出600092
选手输出yesyes
测试点2 Unaccepted / 在1行选手输出与标准输出存在差异
标准输出700453
选手输出yesyes
测试点3 Unaccepted / 在1行选手输出与标准输出存在差异
标准输出1779904
选手输出yesyes
测试点4 Unaccepted / 在1行选手输出与标准输出存在差异
标准输出1522381
选手输出yesyes
测试点5 Unaccepted / 在1行选手输出与标准输出存在差异
标准输出342149
选手输出yesyes
测试点6 Unaccepted / 在1行选手输出与标准输出存在差异
标准输出819638
选手输出yesyes
测试点7 Unaccepted / 在1行选手输出与标准输出存在差异
标准输出1986926
选手输出yesyes
测试点8 Unaccepted / 在1行选手输出与标准输出存在差异
标准输出3413994
选手输出yesyes
测试点9 Unaccepted / 在1行选手输出与标准输出存在差异
标准输出2312607
选手输出yesyes
测试点10 Unaccepted / 在1行选手输出与标准输出存在差异
标准输出765430
选手输出yesyes
type
node=record
w1,w2,t1,t2:longint;
end;
var a:array[1..40]of node;
n,t,i,j:longint;
f:array[0..1080050]of longint;
function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;
begin
readln(n,t);
for i:=1 to n do
begin
readln(a[i].w1,a[i].t1,a[i].w2,a[i].t2);
if(a[i].w1<a[i].w2)or(a[i].w1<a[i].w2)then
begin
writeln('yesyes');
exit;
end;
end;
fillchar(f,sizeof(f),0);
for i:=1 to n do
for j:=t downto 1 do
begin
if j>=a[i].t1 then
f[j]:=max(f[j],f[j-a[i].t1]+a[i].w1);
if j>=a[i].t2 then
f[j]:=max(f[j],f[j-a[i].t2]+a[i].w2);
end;
writeln(f[t]);
readln;
readln;
end.
for j:=t downto a[i].t2 do
begin
if j>=a[i].t1 then
begin
f[j]:=max(f[j],f[j-a[i].t1]+a[i].w1);
end;
f[j]:=max(f[j],f[j-a[i].t2]+a[i].w2);
end;
和
begin
if j>=a[i].t1 then
f[j]:=max(f[j],f[j-a[i].t1]+a[i].w1);
if j>=a[i].t2 then
f[j]:=max(f[j],f[j-a[i].t2]+a[i].w2);
end;
才会不一样……
坑爹爹啊