Пример #1
0
function processDistances($in)
{
    $dirs = explode("\n", $in);
    $routes = array();
    $places = array();
    $patt = "/(.*) to (.*) = ([0-9]*)/";
    foreach ($dirs as $dir) {
        if (!$dir) {
            continue;
        }
        $matches = array();
        preg_match($patt, $dir, $matches);
        $routes = addToRoutes($matches[1], $matches[2], $matches[3], $routes);
        $places[] = $matches[1];
        $places[] = $matches[2];
    }
    $places = array_unique($places);
    $currentLowestDist = -1;
    $currentLowestRoute = array();
    foreach (getAllRoutes($places) as $route) {
        $dist = calcDistance($route, $routes);
        if ($dist > $currentLowestDist) {
            $currentLowestDist = $dist;
            $currentLowestRoute = $route;
        }
    }
    echo "Lowest Distance: " . $currentLowestDist . "\n";
}
Пример #2
0
function getAllRoutes($places)
{
    if (count($places) == 1) {
        return $places;
    }
    $allRoutes = array();
    foreach ($places as $index => $place) {
        $newPlaces = $places;
        unset($newPlaces[$index]);
        $routes = getAllRoutes($newPlaces);
        foreach ($routes as $route) {
            $allRoutes[] = $place . "," . $route;
        }
    }
    return $allRoutes;
}