比赛 20110727 评测结果 WWWAWEEEE
题目名称 道路重建 最终得分 11
用户昵称 11111111 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2011-07-27 12:03:44
显示代码纯文本
program aa;
var
 l:array[1..100,1..3]of integer;
 t:array[1..100,1..2]of integer;
 l1:array[1..100,1..100]of integer;
 k:array[1..100]of longint;
 f1,f2:text;
 a,b,n,m,i,j,p,d,min,max:longint;
{************************************************}
procedure try(p:integer);
var
 biao,i:integer;
begin
 biao:=0;
 if p=b then
 begin
  if min<max then max:=min;
 end
 else
 begin
  for i:=1 to j do
  if k[j]=p then biao:=1;
  if biao=0 then
  begin
   k[j]:=p;
   inc(j);
   for i:=1 to n do
   if l[i,1]=p then
   begin
    min:=min+l1[l[i,1],l[i,2]];
    try(l[i,2]);
    min:=min-l1[l[i,1],l[i,2]];
   end;
  end;
 end;
end;
{************************************************}
begin
assign(f1,'rebuild.in');
assign(f2,'rebuild.out');
reset(f1);
rewrite(f2);
readln(f1,n);
readln(f1,m);
for i:=1 to n do
k[i]:=0;
for i:=1 to m do
for j:=1 to m do
l1[i,j]:=0;
min:=0;
max:=10000;

for i:=1 to m do
readln(f1,l[i,1],l[i,2],l[i,3]);
readln(f1,d);
for i:=1 to d do
readln(f1,t[i,1],t[i,2]);
readln(f1,a,b);
for i:=1 to m do
begin
for j:=1 to d do
if (l[i,1]=t[j,1])and(l[i,2]=t[j,2]) then
begin
l1[l[i,1],l[i,2]]:=l[i,3];
l1[l[i,2],l[i,1]]:=l[i,3];
end;
end;
j:=1;
try(a);
writeln(f2,max);
close(f1);close(f2);
end.