PHPize Online / SQLize Online

A A A
Share   Donate   Blog   Popular
Copy Format Clear
Copy
Copy Format Clear
<?php /* 1. создаем массив, в котором будем хранить размеры свободных от жуков областей камней (изначально в массиве всего 1 запись равная начальному количеству камней. 2. для каждого жука делаем: 2.1 вынимаем из массива первую ячейку (она будет самым большим куском) 2.2 отнимаем от ее размера 1 (это жук занял 1 камень) 2.3 делим ее пополам, при этом если пополам не делится, то левую часть будем считать большей а правую меньшей (например 7/5 = 3.5, тоесть левая=4 а правая=3) 2.4 вставляем в конец массива обе части, при этом потенциально большую (левую) вставляем в первую очередь а потенциально меньшую (правую) во вторую. Это даст нам то, что в первой ячейке массива всегда будет самая большая часть из имеющихся 2.5 если еще есть жуки возвращаемся на 2.1 3. дойдя до сюда, получаем ответ (лево и право вычисленные для последнего жука :) */ $x = 8; $y = 2; $a = [$x]; function b(&$a, $i) { $area = array_shift($a); $i--; echo json_encode($a); } for ($i = 1; $i <= $y; $i++) { $area = array_shift($a) - 1; $bigPart = (int) ceil(($area) / 2); $smallPart = $area - $bigPart; $a[] = $bigPart; $a[] = $smallPart; print_r($a); } print_r($a);
Show:  
Copy