<?php
//tools
function doDivision($x,$divident){
}
0=>"Выдача невозможна: в банкомате недостаточно купюр\n",
1=>"Выдача невозможна: сумма меньше нуля\n",
2=>"Выдача невозможна: сумма не кратна 100\n"
);
$new=[];
'5000'=>200,
'2000'=>3,
'1000'=>1,
'500'=>5,
'200'=>3,
'100'=>23
);
$divident=6600;
//checks
echo "Сумма: {$divident}\n";
if ($divident % 100 !==0) {
echo "{$errorArray[2]}";
}
elseif ($divident <= 0) {
echo "{$errorArray[1]}";
}
//core
foreach ($allowed as $key=>$value) {
if (intval($key) <= $divident) {
$new[$key] = doDivision
(intval($key),$divident);
if ($new[$key]>$allowed[$key]) {
$new[$key]=$allowed[$key];
}
$divident=$divident- ($new[$key]*intval($key));
}
}
//after loop, if divident > 0 it means no sufficient banknotes
if ($divident > 0) {
echo "{$errorArray[0]}";
}
//all green
$string="";
foreach ($new as $key=>$value) {
$string .= $value!=0?"{$value} x {$key} ":NULL;
}
echo "Выдача возможна, число купюр:\n{$string}";
?>
PD9waHAKZXJyb3JfcmVwb3J0aW5nKC0xKTsKCi8vdG9vbHMKCmZ1bmN0aW9uIGRvRGl2aXNpb24oJHgsJGRpdmlkZW50KXsKICAgIHJldHVybiBpbnR2YWwoZmxvb3IoJGRpdmlkZW50IC8gJHgpKTsKfQoKJGVycm9yQXJyYXk9YXJyYXkoCgkwPT4i0JLRi9C00LDRh9CwINC90LXQstC+0LfQvNC+0LbQvdCwOiDQsiDQsdCw0L3QutC+0LzQsNGC0LUg0L3QtdC00L7RgdGC0LDRgtC+0YfQvdC+INC60YPQv9GO0YBcbiIsCgkxPT4i0JLRi9C00LDRh9CwINC90LXQstC+0LfQvNC+0LbQvdCwOiDRgdGD0LzQvNCwINC80LXQvdGM0YjQtSDQvdGD0LvRj1xuIiwKCTI9PiLQktGL0LTQsNGH0LAg0L3QtdCy0L7Qt9C80L7QttC90LA6INGB0YPQvNC80LAg0L3QtSDQutGA0LDRgtC90LAgMTAwXG4iCgkpOwoKJG5ldz1bXTsKCiRhbGxvd2VkPWFycmF5KAogICAgJzUwMDAnPT4yMDAsCiAgICAnMjAwMCc9PjMsCiAgICAnMTAwMCc9PjEsCiAgICAnNTAwJz0+NSwKICAgICcyMDAnPT4zLAogICAgJzEwMCc9PjIzCik7CgokZGl2aWRlbnQ9NjYwMDsKCi8vY2hlY2tzCgplY2hvICLQodGD0LzQvNCwOiB7JGRpdmlkZW50fVxuIjsKCmlmICgkZGl2aWRlbnQgJSAxMDAgIT09MCkgewogICAgZWNobyAieyRlcnJvckFycmF5WzJdfSI7CiAgICBleGl0KCk7Cn0KZWxzZWlmICgkZGl2aWRlbnQgPD0gMCkgewogICAgZWNobyAieyRlcnJvckFycmF5WzFdfSI7CiAgICBleGl0KCk7Cn0KCi8vY29yZQoKZm9yZWFjaCAoJGFsbG93ZWQgYXMgJGtleT0+JHZhbHVlKSB7CiAgICBpZiAoaW50dmFsKCRrZXkpIDw9ICRkaXZpZGVudCkgewogICAgICAgIAogICAgICAgICRuZXdbJGtleV0gPSBkb0RpdmlzaW9uKGludHZhbCgka2V5KSwkZGl2aWRlbnQpOwogICAgICAKICAgICAgICBpZiAoJG5ld1ska2V5XT4kYWxsb3dlZFska2V5XSkgewogICAgICAgIAkkbmV3WyRrZXldPSRhbGxvd2VkWyRrZXldOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAkZGl2aWRlbnQ9JGRpdmlkZW50LSAoJG5ld1ska2V5XSppbnR2YWwoJGtleSkpOwogICAgICAgCiAgICB9Cn0KCi8vYWZ0ZXIgbG9vcCwgaWYgZGl2aWRlbnQgPiAwIGl0IG1lYW5zIG5vIHN1ZmZpY2llbnQgYmFua25vdGVzCgppZiAoJGRpdmlkZW50ID4gMCkgewogICAgZWNobyAieyRlcnJvckFycmF5WzBdfSI7CiAgICBleGl0KCk7Cn0KCi8vYWxsIGdyZWVuCgokc3RyaW5nPSIiOwoKZm9yZWFjaCAoJG5ldyBhcyAka2V5PT4kdmFsdWUpIHsKICAgICRzdHJpbmcgLj0gJHZhbHVlIT0wPyJ7JHZhbHVlfSB4IHska2V5fSAiOk5VTEw7Cn0KCmVjaG8gItCS0YvQtNCw0YfQsCDQstC+0LfQvNC+0LbQvdCwLCDRh9C40YHQu9C+INC60YPQv9GO0YA6XG57JHN0cmluZ30iOwoKPz4=