public override bool Equals(object obj)
        {
            Cocktail other = obj as Cocktail;

            if (other == null)
            {
                return(false);
            }
            else if (this.FreshnessLevel == other.FreshnessLevel)
            {
                return(true);
            }
            return(false);
        }
        static void Main()
        {
            var cocktailsTable = PopulateCocktailsTable();
            var ingredients    = new Queue <int>(takeInputIntegers());
            var freshness      = new Stack <int>(takeInputIntegers());

            while (ingredients.Count > 0 && freshness.Count > 0)
            {
                var currentIngredient = 0;
                while (currentIngredient == 0 && ingredients.Count > 0)
                {
                    currentIngredient = ingredients.Dequeue();
                }
                if (currentIngredient > 0)
                {
                    var result         = currentIngredient * freshness.Pop();
                    var searchCocktail = new Cocktail("", result);
                    if (cocktailsTable.ContainsKey(searchCocktail))
                    {
                        cocktailsTable[searchCocktail]++;
                    }
                    else
                    {
                        ingredients.Enqueue(currentIngredient + 5);
                    }
                }
            }
            var sortedCocktails = cocktailsTable.OrderBy(x => x.Key.Name).Where(x => x.Value > 0);

            if (sortedCocktails.Count() > 3)
            {
                Console.WriteLine("It's party time! The cocktails are ready!");
            }
            else
            {
                Console.WriteLine("What a pity! You didn't manage to prepare all cocktails.");
                if (ingredients.Count > 0)
                {
                    Console.WriteLine($"Ingredients left: {ingredients.Sum()}");
                }
            }
            foreach (var item in sortedCocktails)
            {
                Console.WriteLine($" # {item.Key.Name} --> {item.Value}");
            }
        }