比赛 20101025 评测结果 EAWWWWWWWW
题目名称 整理书本 最终得分 10
用户昵称 王者自由 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2010-10-25 21:25:36
显示代码纯文本
  1. program book;
  2. var n,i:integer;
  3. f,min,max:longword;
  4. w,v:array[0..402]of word;
  5. procedure heap(var n:integer);
  6. var p:word;
  7. begin
  8. min:=max;
  9. for i:=1 to n-1 do
  10. if w[i]-v[i]+w[i+1]-v[i+1]<min then
  11. begin
  12. min:=w[i]-v[i]+w[i+1]-v[i+1];
  13. p:=i;
  14. end;
  15. w[p+1]:=w[p]+w[p+1];
  16. v[p+1]:=v[p]+v[p+1];
  17. f:=f+min;
  18. n:=n-1;
  19. for i:=p to n do
  20. begin
  21. w[i]:=w[i+1];
  22. v[i]:=v[i+1];
  23. end;
  24. if n>2 then heap(n) else if n=2 then f:=f+w[1]-v[1]+w[2]-v[2];
  25. end;
  26. begin
  27. assign(input,'book.in'); reset(input);
  28. assign(output,'book.out'); rewrite(output);
  29. readln(n);
  30. max:=0; f:=0;
  31. for i:=1 to n do begin readln(w[i],v[i]); max:=max+w[i]-v[i]; end;
  32. heap(n);
  33. writeln(f);
  34. close(input); close(output);
  35. end.