Pagini recente » Cod sursa (job #532078) | Cod sursa (job #2854175) | Cod sursa (job #2419796) | Cod sursa (job #2105840) | Cod sursa (job #135057)
Cod sursa(job #135057)
var id,cs,x,s,q,viz:array[0..200010] of longint;
ct:array[1..30001] of longint;
a,b,i,j,n,m,u,t,pe:longint;
begin
assign(input,'sate.in');reset(input);
assign(output,'sate.out');rewrite(output);
readln(n,m,a,b);
for i:=1 to m do
begin
readln(s[i],q[i],viz[i]);
inc(id[s[i]]);
inc(id[q[i]]);
end;
for i:=1 to n do
id[i]:=id[i]+id[i-1];
for i:=1 to m do
begin
inc(ct[s[i]]);
inc(ct[q[i]]);
x[id[s[i]-1]+ct[s[i]]]:=q[i];
x[id[q[i]-1]+ct[q[i]]]:=s[i];
cs[id[s[i]-1]+ct[s[i]]]:=viz[i];
cs[id[q[i]-1]+ct[q[i]]]:=-viz[i];
end;
fillchar(ct,sizeof(ct),0);
fillchar(viz,sizeof(viz),0);
s[1]:=a;
pe:=1;u:=1;
while pe<=u do
begin
for i:=id[s[pe]-1]+1 to id[s[pe]] do
begin
if viz[x[i]]=0 then
begin
inc(u);
s[u]:=x[i];
viz[x[i]]:=1;
ct[x[i]]:=ct[s[pe]]+cs[i];
{ if x[i]=b then
begin
writeln(ct[b]);
close(output);
halt;
end; }
end;
end;
inc(pe);
end;
writeln(ct[b]);
close(input);close(output);
end.