比赛 |
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.