<?php

error_reporting(-1);

$amount = 6600;

$bills = array(
	100 => 23,
	200 => 3,
	500 => 1,
	1000 => 0,
	2000 => 4,
	5000 => 1
);

krsort($bills);

echo "Сумма: {$amount}\n";

if($amount % 100 > 0){
	echo "Выдача невозможна: сумма не кратна 100.";
	return;
}
elseif($amount <= 0){
	echo "Выдача невозможна: сумма меньше или равна нулю.";
	return;
}

$count = 0;
$result = "";

foreach($bills as $key => $value){
	$count = floor($amount / $key);
	if($value == 0){
		continue;
	}
	elseif($amount == 0 || $count == 0){
		continue;
	}
	else{
		if($count > $value){
			$amount -= $key * $value;
			$result .= "{$value}x{$key} ";
			$count = 0;
		}
		else{
			$result .= "{$count}x{$key} ";
			$amount -= $key * $count;
			$count = 0;
		}
	}
}

if($amount > 0){
	echo "Выдача невозможна: в банкомате недостаточно купюр.";
}
else{
	echo "Выдача возможна, число купюр:\n{$result}";
}