LJSC go WA i can't understund? See his program.
type TMatrix = array[1..100, 1..100]of longint;
var
matrix, bak: TMatrix;
succ: boolean;
n, m, ss: longint;
mark: array[1..100]of boolean;
procedure travel(x0: longint; var result: longint);
var i, m0, m1, m2: longint;
begin
if succ then exit;
m1 := 0; m2 := 0;
for i := 1 to n do
if(matrix[x0, i] > 0)and mark[i] then
begin
succ := true;
exit;
end else if not mark[i] then
begin
matrix[i, x0] := 0;
mark[i] := true;
travel(i, m0);
if m0 + matrix[x0, i] > m1 then
begin
m2 := m1;
m1 := m0 + matrix[x0, i];
end else if m0 + matrix[x0, i] > m2 then
m2 := m0 + matrix[x0, i];
matrix[x0, i] := 0;
end;
if m1 + m2 >= ss then
begin
succ := true;
exit;
end;
result := m1;
end;
var
i, j, k: longint;
begin
succ := false;
read(n, m, ss);
fillchar(bak, sizeof(bak), 0);
while m > 0 do
begin
read(i, j, k);
if(i = j) or (bak[i, j] > 0) then
begin
succ := true;
break;
end;
bak[i, j] := k;
bak[j, i] := k;
dec(m);
end;
matrix := bak;
fillchar(mark, sizeof(mark), 0);
for i := 1 to n do
if not mark[i] then
begin
mark[i] := true;
travel(i, j);
end;
for i := 1 to n do
for j := 1 to n do
if bak[i, j] >= ss then
succ := true;
if succ then
writeln('YES')
else
writeln('NO');
end.