记录编号 |
8268 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[BYVoid S1] 灵魂分流药剂 |
最终得分 |
100 |
用户昵称 |
SMXX |
是否通过 |
通过 |
代码语言 |
Pascal |
运行时间 |
0.016 s |
提交时间 |
2008-11-13 14:23:14 |
内存使用 |
11.61 MiB |
显示代码纯文本
program df;
var
f1,f2:text;
h,max:longint;
n,m,a,b,w,v,i,j,g:longint;
o:array[1..1000]of integer;
x,y,z:array[1..1000,1..1000]of longint;
procedure dfs(p:integer);
var i:integer;
begin
for i:= 1to o[p]+1 do
if (w+x[p,i]<=a)and(v+y[p,i]<=b) then begin
w:=w+x[p,i];v:=v+y[p,i];h:=h+z[p,i];
if p<m then dfs(p+1)
else if h>max then max:=h;
w:=w-x[p,i];v:=v-y[p,i];h:=h-z[p,i];
end;
end;
begin
assign(f1,'soultap.in');
assign(f2,'soultap.out');
reset(f1);
rewrite(f2);
readln(f1,n,m,a,b);
for i:= 1to m do o[i]:=0;
for i:= 1to n do begin
readln(f1,w,v,g,h);
inc(o[g]);
x[g,o[g]]:=w;
y[g,o[g]]:=v;
z[g,o[g]]:=h;
end;
w:=0;v:=0;
h:=0;max:=-11;
dfs(1);
writeln(f2,max);
close(f1);
close(f2);
end.