using System.Collections.Generic;
public static List<long> moneyDenominations = new List<long> { 50000, 20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 10, 5, 2, 1 };
public static List<int> moneyDenominationsLeft = new List<int> { 0, 2, 1, 3, 0, 1000, 500, 200, 100, 50, 10, 5, 2, 1 };
public static long moneyToWithdraw = 0;
public static void Main()
public static void ReadMoneyAmmount()
Console.WriteLine("\nHow much money you wish to withdraw? Zl \n");
while (moneyToWithdraw <= 0)
Int64.TryParse(Console.ReadLine().Trim(), out moneyToWithdraw);
public static void SplitMoney()
for (int i = 0; i < moneyDenominations.Count; i++)
while (moneyToWithdraw / moneyDenominations[i] >= 1 && moneyDenominationsLeft[i] > 0)
moneyDenominationsLeft[i]--;
moneyToWithdraw -= moneyDenominations[i];
if (moneyDenominations[i] >= 100)
Console.WriteLine("Cash {0} In zł occured {1} times", moneyDenominations[i] / 100, moneyParts);
Console.WriteLine("Cash {0} In grosze occured {1} times", moneyDenominations[i], moneyParts);