Pagini recente » Cod sursa (job #2083609) | Cod sursa (job #1690385) | Cod sursa (job #830249) | Cod sursa (job #2145139) | Cod sursa (job #68071)
Cod sursa(job #68071)
program sate;
type lista=^node;
node=record
nod,lung:longint;
urm:lista;
end;
var f,g:text;
n,m,x,y:longint;
b:array[1..30001] of byte;
v:array[1..30001] of lista;
procedure add(var p:lista;nd,lng:longint);
begin
if p=nil then
begin
new(p);
p^.nod:=nd;
p^.lung:=lng;
p^.urm:=nil;
end else
add(p^.urm,nd,lng);
end;
procedure iofile;
var i,a,b,c:longint;
begin
assign(f,'sate.in');
reset(f);
assign(g,'sate.out');
rewrite(g);
readln(f,n,m,x,y);
for i:=1 to n do
v[i]:=nil;
for i:=1 to m do
begin
readln(f,a,b,c);
add(v[a],b,c);
add(v[b],a,-c);
end;
close(f);
end;
procedure bfs(nd,lc:longint);
var q:lista;
un:longint;
begin
if nd=y then
begin
writeln(g,lc);
close(g);
halt;
end else
begin
q:=v[nd];
while q<>nil do
begin
un:=q^.nod;
if b[un]=0 then
begin
b[un]:=1;
bfs(un,lc+q^.lung);
end;
q:=q^.urm;
end;
end;
end;
begin
iofile;
bfs(x,0);
end.