比赛 20110722 评测结果 AWAWAAWWAWWWWWWWW
题目名称 网络探测 最终得分 29
用户昵称 Oo湼鞶oO 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2011-07-22 08:58:09
显示代码纯文本
const
mm=200000000;
var
map,v:array[0..1100,0..1100]of longint;
num,dist,d:array[0..1100]of longint;
n,m,x,y,c,i,j,arm:longint;
f:array[0..1100]of boolean;

procedure add(x,y,c:longint);
begin
    inc(num[x]);map[x,num[x]]:=y;v[x,num[x]]:=c;
end;


procedure djs(s,a:longint);
var
i,j,h,t,x,y:longint;
begin
    for i:=0 to n do dist[i]:=mm;
    dist[s]:=0;
    t:=1;h:=0;d[1]:=s;f[s]:=true;
    while h<>t do begin
        inc(h);x:=d[h];f[x]:=false;
        for i:=1 to num[x] do begin
            y:=map[x,i];
            if dist[y]>dist[x]+v[x,i] then begin
                dist[y]:=dist[x]+v[x,i];
                if not f[y] then begin
                    inc(t);d[t]:=y;
                end;
            end;
        end;
    end;

end;

begin
assign(input,'ping.in');
assign(output,'ping.out');
reset(input);
rewrite(output);
    read(n,m,arm);dec(n);
    for i:=0 to n do
        for j:=0 to n do map[i,j]:=mm;
    for i:=0 to n do begin
        read(x,y,c);
        add(x,y,c);add(x,y,c);
    end;
    djs(0,arm);
    if dist[arm]<>mm then
        writeln(dist[arm])
    else writeln('no');
close(input);close(output);
end.