function gextri($TREE)
{
    while (!checkedAllNodes($TREE)) {
        $i = startnode($TREE);
        recursewalk($TREE, $i);
    }
    return searchMax($TREE);
}
function gextri($ROOMS)
{
    $timestart = microtime(1);
    $cnt = count($ROOMS) - 1;
    for ($i = 0; $i < $cnt; $i++) {
        $r = $ROOMS[$i][0];
        $ROOMS[$r]['total'] = calcCost($ROOMS, $i, 0);
        $r = $ROOMS[$i][1];
        $ROOMS[$r]['total'] = calcCost($ROOMS, $i, 1);
    }
    error_log(var_export('calculate cost - ' . (microtime(1) - $timestart), true));
    return searchMax($ROOMS);
}