Exemple #1
0
function calcWinner($in, $seconds)
{
    $reindeerDetails = getReindeerDetails($in);
    $maxDistance = 0;
    foreach ($reindeerDetails as $name => $reindeer) {
        $distance = calcDistance($seconds, $reindeer);
        if ($distance > $maxDistance) {
            $maxDistance = $distance;
        }
    }
    echo "Winning reindeer went {$maxDistance}\n";
}
Exemple #2
0
function calcWinner($in, $seconds)
{
    $reindeerDetails = getReindeerDetails($in);
    $maxDistance = 0;
    $arrPoints = array();
    for ($x = 0; $x < $seconds; $x++) {
        $curMax = 0;
        $curWinner = array();
        foreach ($reindeerDetails as $name => $reindeer) {
            if ($reindeer['inRest']) {
                $reindeerDetails[$name]['curPeriod']--;
                if ($reindeerDetails[$name]['curPeriod'] <= 0) {
                    $reindeerDetails[$name]['curPeriod'] = $reindeer['time'];
                    $reindeerDetails[$name]['inRest'] = false;
                }
            } else {
                $reindeerDetails[$name]['curPeriod']--;
                $reindeerDetails[$name]['curDistance'] += $reindeer['speed'];
                if ($reindeerDetails[$name]['curPeriod'] <= 0) {
                    $reindeerDetails[$name]['curPeriod'] = $reindeer['rest'];
                    $reindeerDetails[$name]['inRest'] = true;
                }
            }
            if ($reindeerDetails[$name]['curDistance'] > $curMax) {
                $curMax = $reindeerDetails[$name]['curDistance'];
                $curWinner = array($name);
            } elseif ($reindeerDetails[$name]['curDistance'] == $curMax) {
                $curWinner[] = $name;
            }
        }
        foreach ($curWinner as $winner) {
            if (empty($arrPoints[$winner])) {
                $arrPoints[$winner] = 0;
            }
            $arrPoints[$winner]++;
        }
    }
    print_r($arrPoints);
}