比赛 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.