fork download
  1. $pathDone = array();
  2. $time = 0;
  3. $i = 0;
  4.  
  5. function step($paths, $pathDone, $point, $target, $time, $i, $pointNames, $transportName){
  6. if ($i == 0){
  7. echo "Отправная точка: $pointNames[$point] <br>";
  8. }
  9. $i++;
  10. $pathDone[$i] = $point;
  11. if (array_key_exists($target, $paths[$point]) == True){
  12. echo "Exit was found in " . count($pathDone)." steps!";
  13. exit();
  14. } else {
  15. foreach ($paths[$point] as $station => $times){
  16. if (in_array($station, $pathDone) != True ){
  17. $canGet = $paths[$point][$station];
  18. echo "Ехать $canGet[time] минут посредством {$transportName[$canGet[by]]} <br>";
  19. $point = $station;
  20. step($paths, $pathDone, $point, $target, $time, $i, $pointNames, $transportName);
  21.  
  22. }
  23. }
  24.  
  25. }
  26. }
Success #stdin #stdout 0s 82560KB
stdin
Standard input is empty
stdout
$pathDone = array();
$time = 0;
$i = 0;

function step($paths, $pathDone, $point, $target, $time, $i, $pointNames, $transportName){
	if ($i == 0){
		echo "Отправная точка: $pointNames[$point] <br>";
	}
	$i++;
	$pathDone[$i] = $point;
	if (array_key_exists($target, $paths[$point]) == True){
		echo "Exit was found in " . count($pathDone)." steps!";
		exit();
	} else {
		foreach ($paths[$point] as $station => $times){
			if (in_array($station, $pathDone) != True ){
				$canGet = $paths[$point][$station];
				echo "Ехать $canGet[time] минут посредством {$transportName[$canGet[by]]} <br>";
				$point = $station;
				step($paths, $pathDone, $point, $target, $time, $i, $pointNames, $transportName);
				
			}
		}
	
	}
}