f:array[0..3200]of longint;
v,t:array[1..60,0..2]of longint;
procedure init;
var i,vp,p,q:integer; o:array[1..60]of integer;
begin readln(n,m); n:=n div 10; z:=0; //记得将价值优化!
fillchar(f,sizeof(f),0);
fillchar(t,sizeof(t),0);
fillchar(o,sizeof(o),0);
for i:=1 to m do begin
readln(vp,p,q); vp:=vp div 10;
if q=0 then begin
inc(z); o[i]:=z; v[z,0]:=vp; t[z,0]:=vp*p end
else if t[o[q],1]=0 then begin
v[o[q],1]:=vp; t[o[q],1]:=vp*p end
else begin
v[o[q],2]:=vp; t[o[q],2]:=vp*p end
end
end;
procedure main;
var i,j:integer; tmp:longint;
begin for i:=1 to z do
for j:=n downto 0 do begin
tmp:=j-v[i,0];
if (tmp>=0)and(f[j]<f[tmp]+t[i,0])
then f[j]:=f[tmp]+t[i,0];
if v[i,1]>0 then begin
tmp:=j-v[i,0]-v[i,1];
if (tmp>=0)and(f[j]<f[tmp]+t[i,0]+t[i,1])
then f[j]:=f[tmp]+t[i,0]+t[i,1]
end;
if v[i,2]>0 then begin
tmp:=j-v[i,0]-v[i,2];
if (tmp>=0)and(f[j]<f[tmp]+t[i,0]+t[i,2])
then f[j]:=f[tmp]+t[i,0]+t[i,2];
tmp:=j-v[i,0]-v[i,1]-v[i,2];
if (tmp>=0)and(f[j]<f[tmp]+t[i,0]+t[i,1]+t[i,2])
then f[j]:=f[tmp]+t[i,0]+t[i,1]+t[i,2]
end
end
end;
begin ans:=0; init; main;
for i:=0 to n do if f[i]>ans then ans:=f[i];
writeln(ans*10)
end.
f:array[0..3200]of longint;
v,t:array[1..60,0..2]of longint;
procedure init;
var i,vp,p,q:integer; o:array[1..60]of integer;
begin readln(n,m); n:=n div 10; z:=0; //记得将价值优化!
fillchar(f,sizeof(f),0);
fillchar(t,sizeof(t),0);
fillchar(o,sizeof(o),0);
for i:=1 to m do begin
readln(vp,p,q); vp:=vp div 10;
if q=0 then begin
inc(z); o[i]:=z; v[z,0]:=vp; t[z,0]:=vp*p end
else if t[o[q],1]=0 then begin
v[o[q],1]:=vp; t[o[q],1]:=vp*p end
else begin
v[o[q],2]:=vp; t[o[q],2]:=vp*p end
end
end;
procedure main;
var i,j:integer; tmp:longint;
begin for i:=1 to z do
for j:=n downto 0 do begin
tmp:=j-v[i,0];
if (tmp>=0)and(f[j]<f[tmp]+t[i,0])
then f[j]:=f[tmp]+t[i,0];
if v[i,1]>0 then begin
tmp:=j-v[i,0]-v[i,1];
if (tmp>=0)and(f[j]<f[tmp]+t[i,0]+t[i,1])
then f[j]:=f[tmp]+t[i,0]+t[i,1]
end;
if v[i,2]>0 then begin
tmp:=j-v[i,0]-v[i,2];
if (tmp>=0)and(f[j]<f[tmp]+t[i,0]+t[i,2])
then f[j]:=f[tmp]+t[i,0]+t[i,2];
tmp:=j-v[i,0]-v[i,1]-v[i,2];
if (tmp>=0)and(f[j]<f[tmp]+t[i,0]+t[i,1]+t[i,2])
then f[j]:=f[tmp]+t[i,0]+t[i,1]+t[i,2]
end
end
end;
begin ans:=0; init; main;//fffff
for i:=0 to n do if f[i]>ans then ans:=f[i];
writeln(ans*10)
end.
女:数组[0 .. 3200]的Longint型;
五,电话:数组[1 .. 60,0 .. 2] Longint型;
程序初始化;
VaR的我,副总裁,磷,问:整数; Ø:数组[1 .. 60]的整数;
开始readln(氮,男);护士:为N格10;张:= 0; / /记得将价值优化!
fillchar(女,一下SizeOf(六),0);
fillchar(吨,听sizeof(吨),0);
fillchar(海外,听sizeof(海外),0);
对于i:= 1米开始做
readln(副总裁的P,Q);副总裁:副总裁分区= 10;
如果Q = 0,然后开始
公司(z)的; Ø [我]:= Z的;五[Z的0]:=副总裁;吨为[Z,0]:= * p的副总裁结束
否则如果T [Ø [问],1] = 0,然后开始
五[Ø [问],1]:=副总裁;吨[Ø [问],1]:= * p的副总裁结束
否则开始
五[Ø [问],2]:=副总裁;吨[Ø [问],2]:= * p的副总裁结束
结束
结束;
程序的主要;
VaR的i和j:整数; tmp目录:Longint型;
我开始为:= 1到z做
对于j:= n的downto 0开始做
tmp目录:=合资[我,0];
如果(tmp目录> = 0)和(f研究[J] <f [tmp目录] +吨[我,0])
则f研究[J]:= f的[tmp目录] +吨[我,0];
如果V [我,1]> 0,则开始
tmp目录:=合资[我,0] - V的[我,1];
如果(tmp目录> = 0)和(f研究[J] <f [tmp目录] +吨[我,0] +吨[我,1])
则f研究[J]:= f的[tmp目录] +吨[我,0] +吨[我,1]
结束;
如果V [我,2]> 0,则开始
tmp目录:=合资[我,0] - V的[我,2];
如果(tmp目录> = 0)和(f研究[J] <f [tmp目录] +吨[我,0] +吨[我,2])
则f研究[J]:= f的[tmp目录] +吨[我,0] +吨[我,2];
tmp目录:=合资[我,0] - V的[我,1] - V的[我,2];
如果(tmp目录> = 0)和(f研究[J] <f [tmp目录] +吨[我,0] +吨[我,1] +吨[我,2])
则f研究[J]:= f的[tmp目录] +吨[我,0] +吨[我,1] +吨[我,2]
结束
结束
结束;
开始答:= 0;初始化,主/ / fffff
对于i:= 0到n做如果f [一]>答则答:= f的[我];
writeln(答* 10)
结束。
