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"; }
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); }