记录编号 32236 评测结果 AAAAAAAAAA
题目名称 物品 最终得分 100
用户昵称 Gravatarreamb 是否通过 通过
代码语言 Pascal 运行时间 0.282 s
提交时间 2011-11-06 11:08:07 内存使用 0.14 MiB
显示代码纯文本
program shiyan;
var
  f:array[0..5000]of longint;
  a:array[1..1000,1..2]of longint;
  t,i,j,v,p,s,n,ans,l:longint;
begin
  assign (input,'magica.in');
  reset (input);
  assign (output,'magica.out');
  rewrite (output);
    readln (n,p);
    for i:=1 to n do
    begin
      t:=0;
      repeat
        inc(t);
        read (a[i,t])
      until eoln;
      if t=1 then
      begin
        inc(t);
        a[i,t]:=a[i,1]
      end;
      if a[i,2]-p<a[i,1] then
        a[i,2]:=a[i,1];
      if a[i,1]=a[i,2] then
        l:=l+a[i,1]
      else
        l:=l+a[i,2]-p
    end;
    for i:=1 to p do
      f[i]:=maxlongint;
    f[0]:=0;
    for i:=1 to n do
      for j:=p downto 0 do
      begin
        v:=j+a[i,1];
        if v>p then
          v:=p;
        if a[i,1]=a[i,2] then
          s:=0
        else
          s:=a[i,2]-p-a[i,1];
        if (f[j]<>maxlongint)and(f[j]+s<f[v]) then
          f[v]:=f[j]+s
      end;
      if f[p]=maxlongint then
      begin
        for i:=1 to n do
          ans:=ans+a[i,1];
        writeln (ans)
      end
      else
      begin
        ans:=l-f[p];
        writeln (ans);
      end;
  close (input);
  close (output)
end.