比赛 |
暑假培训四 |
评测结果 |
AATTTTTTTA |
题目名称 |
采药 |
最终得分 |
30 |
用户昵称 |
chengyang |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2008-07-21 11:18:36 |
显示代码纯文本
program medic(f1,f2);
type
ss=array[1..100]of boolean;
var
b:ss;
a:array[1..100,1..3]of integer;
m,t,i,j,k,s,max,n:integer;
f1,f2:text;
procedure try(s,n,i:integer; b:ss);
begin
i:=1;
while j>0 do begin
while i<=m do begin
if b[i]and (s+a[i,1]<=t) then begin;
b[i]:=false;
j:=j+1;
try((s+a[i,1]),(n+a[i,2]),i,b);
end;
i:=i+1;
end;
if n>max then max:=n;
j:=j-1; exit;
end;
if n>max then max:=n;
end;
Begin
assign(f1,'medic.in'); assign(f2,'medic.out');
reset(f1); rewrite(f2);
read(f1,t,m); max:=0;
s:=0; i:=1; n:=0; j:=1;
for i:=1 to m do begin
readln(f1,a[i,1],a[i,2]);
end;
for i:=1 to m do begin
if a[i,1]<=t then b[i]:=true
else b[i]:=false;
end;
try(s,n,i,b);
writeln(f2,max);
close(f1); close(f2);
End.