比赛 暑假培训四 评测结果 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.