记录编号 14220 评测结果 AAAAA
题目名称 [NOI 1998]SERNET模拟 最终得分 100
用户昵称 Gravatar.Xmz 是否通过 通过
代码语言 Pascal 运行时间 0.011 s
提交时间 2009-10-28 08:51:35 内存使用 0.24 MiB
显示代码纯文本
  1. program xmz;
  2. var
  3. f1,f2:text;
  4. d,f:array[1..100,1..100]of longint;
  5. y:array[1..100,1..100]of boolean;
  6. long,bh:array[1..100]of longint;
  7. ml:array[1..10000]of longint;
  8. a,b,q,z,t1,t2,t3,n,bn,time,s:longint;
  9. procedure djs;
  10. var
  11. i,k,min:longint;
  12. begin
  13. fillchar(y[q],sizeof(y[q]),false);
  14. for i:=1 to n do d[q,i]:=99999999;
  15. k:=q;d[q,k]:=time;
  16. repeat
  17. y[q,k]:=true;
  18. if k<>z then
  19. for i:=1 to n do
  20. if (f[k,i]<>0)and(f[k,i]+d[q,k]<d[q,i])and(not y[q,i]) then
  21. d[q,i]:=f[k,i]+d[q,k];
  22. min:=99999999;
  23. for i:=1 to n do
  24. if (d[q,i]<min)and(not y[q,i]) then begin min:=d[q,i];k:=i;end;
  25. until min=99999999;
  26. end;
  27. begin
  28. assign(f1,'sernet.in');assign(f2,'sernet.out');
  29. reset(f1);rewrite(f2);
  30. read(f1,n);
  31. for a:=1 to n do
  32. begin read(f1,t1);bh[t1]:=a;end;
  33. read(f1,bn);
  34. for a:=1 to bn do
  35. begin
  36. read(f1,t1,t2,t3);
  37. t1:=bh[t1];
  38. t2:=bh[t2];
  39. f[t1,t2]:=t3;
  40. f[t2,t1]:=t3;
  41. end;
  42. read(f1,bn);
  43.  
  44. for a:=1 to n do
  45. for b:=1 to n do
  46. if (f[a,b]<>0)and(f[a,b]>long[a])then long[a]:=f[a,b];
  47.  
  48. for a:=1 to bn do
  49. begin
  50. read(f1,t1);
  51. read(f1,time,q,z);
  52. q:=bh[q];z:=bh[z];
  53. djs;
  54. for b:=1 to n do
  55. if (b<>z)and(d[q,b]<>99999999) then inc(d[q,b],long[b]);
  56. for b:=1 to n do
  57. if (d[q,b]>ml[a])and(d[q,b]<99999999) then ml[a]:=d[q,b];
  58. end;
  59. read(f1,t1);
  60. for a:=1 to bn do
  61. if ml[a]>t1 then inc(s);
  62. writeln(f2,s);
  63. close(f1);close(f2);
  64. end.