比赛 |
NOIP2008集训模拟4 |
评测结果 |
AWAWWAWWWA |
题目名称 |
灵魂分流药剂 |
最终得分 |
40 |
用户昵称 |
SMXX |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2008-11-13 11:13:25 |
显示代码纯文本
program df;
var
f1,f2:text;
h,max:longint;
n,m,a,b,w,v,i,j,g:integer;
o:array[1..100]of integer;
x,y,z:array[1..10,1..100]of integer;
procedure dfs(p:integer);
var t:integer;
begin
for t:= 1 to o[p] do begin
if (w+x[p,t]<a)and(v+y[p,t]<b) then begin
w:=w+x[p,t];v:=v+y[p,t];h:=h+z[p,t];
if p<m then dfs(p+1)
else if h>max then max:=h;
w:=w-x[p,t];v:=v-y[p,t];h:=h-z[p,t];
end; end;
if p<m then dfs(p+1);
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:=-1;
dfs(1);
writeln(f2,max);
close(f1);
close(f2);
end.