比赛 |
暑假培训四 |
评测结果 |
EEEEEEWEEW |
题目名称 |
采药 |
最终得分 |
0 |
用户昵称 |
bly1991 |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2008-07-21 09:45:40 |
显示代码纯文本
program medic(input,output);
var
c:array[1..100,1..2] of integer;
a:array[1..100] of real;
b:array[1..100] of boolean;
i,j,t,m:integer;
f1,f2:text;
x,y,k,ans,z:integer;
max:real;
p:boolean;
begin
assign(f1,'medic.in');
reset(f1);
readln(f1,t,m);
for i:=1 to m do begin
readln(f1,x,y);
c[i,1]:=x; c[i,2]:=y;
a[i]:=x/y;
end;
close(f1);
repeat
max:=0;
for i:=1 to m do begin
if c[i,1]>t then b[i]:=true;
if (a[i]>max)and(b[i]=false) then begin
max:=a[i]; k:=i;
end;
if b[i]=true then inc(z);
end;
if t-c[k,1]>=0 then begin
t:=t-c[k,1];
ans:=ans+c[k,2];
b[k]:=true;
end;
p:=false;
while p=false do begin
inc(j);
if (t-c[j,1]>=0)and(b[j]=false) then p:=true;
end;
until (p=false)or(z=m);
assign(f2,'medic.out');
rewrite(f2);
writeln(f2,ans);
close(f2);
end.