21,893
社区成员




$d = array(1,10,100,2000,1000,500);
$a = array(
'A'=>600,
'B'=>900,
'C'=>400,
'D'=>800,
'F'=>2400,
);
while($d) {
while(max($a)*count($a) - array_sum($a) > array_sum($d)) {
$k = array_search(max($a), $a);
$r[$k] = $a[$k];
unset($a[$k]);
}
$a[array_search(min($a), $a)] += max($d);
$d = array_diff($d, array(max($d)));
}
$r = array_merge($r, $a);
print_r($r);
Array
(
[F] => 2400
[C] => 2400
[A] => 1600
[D] => 1300
[B] => 1011
)