<?php

error_reporting(-1);
mb_internal_encoding("utf-8");

$amount = 54500;
$amount2 = $amount;

$bills = array(
    5000 => 200,
    1000 => 0,
    500 => 5,
    100 => 23,
);

$result = array();
$countBills = 0;


foreach ($bills as $value => $count) {
	if ($count == 0){
		continue;
	} else {
		while (($amount >= $value) and ($count > 0)) {
			$amount -= $value;
			$countBills += 1;
			$count -= 1;
		}
		$result[$value] = $countBills;
		$countBills = 0;
	}
}
if ($amount != 0) {
		echo "Выдача невозможна.";
		exit();
	}

echo "Сумма: $amount2\n";
echo "Выдача возможна, число купюр: \n";
foreach ($result as $value => $amount) {
    echo "{$amount}x{$value} ";
}
