比赛 |
20101025 |
评测结果 |
AWWWWWWWWW |
题目名称 |
逛街 |
最终得分 |
10 |
用户昵称 |
maxiem |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2010-10-25 21:43:10 |
显示代码纯文本
- program shop;
- var
- data:array [1..300] of record
- w,v,t,h:longint;
- end;
- f:array [0..1000,0..100] of longint;
- cut:array [1..100000] of record
- x,y:longint;
- end;
- value,a1,b1,a2,b2,top,i,j,n,x,y:longint;
- begin
- fillchar (f,sizeof(f),$FF);
- fillchar (data,sizeof(data),0);
- fillchar (cut,sizeof(cut),0);
- assign (input,'shop.in');
- reset (input);
- readln (n,x,y);
- for i:=1 to n do with data[i] do readln (w,v,t,h);
- close (input);
- assign (output,'shop.out');
- rewrite (output);
- top:=1;cut[top].x:=0;cut[top].y:=0;
- f[0,0]:=0;
- for i:=1 to n do begin
- for j:=1 to top do begin
- a1:=cut[j].x+data[i].w;b1:=cut[j].y+data[i].v;
- a2:=cut[j].x+data[i].w*data[i].h;b2:=cut[j].y+data[i].v*data[i].h;
- if (a1<=x) and (b1<=y) then begin
- value:=f[cut[j].x,cut[j].y]+data[i].t;
- if f[a1,b1]=-1 then begin
- inc (top);
- cut[top].x:=a1;cut[top].y:=b1;
- f[a1,b1]:=value;
- end
- else if value>f[a1,b1] then f[a1,b1]:=value;
- end;
- if (a2<=x) and (b2<=y) then begin
- value:=f[cut[j].x,cut[j].y]+data[i].t*data[i].h;
- if f[a2,b2]=-1 then begin
- inc(top);
- cut[top].x:=a2;cut[top].y:=b2;
- f[a2,b2]:=value;
- end
- else if value>f[a2,b2] then f[a2,b2]:=value;
- end;
- end;
- end;
- writeln (f[x,y]);
- close (output);
- end.