C# - Problems for Champions - Part II - 01. Passion Days, 2 грешки от Judge системата - Memory limit
Здравейте, колеги!
Бихти ли ми помогнали с моя код за тази задача. Вече няколко теста направих и винаги имам 80% успеваемост.
Благодаря предварително за отделеното време.
 
С поздрав,
Мариана Петкова
Ето го и кода:
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
namespace ShoppingNS
{
    public class Shopping
    {
        public static void Main()
        {
            decimal shoppingMoney;
            int numberRows = 0;
            do
            {
                try
                {
                    shoppingMoney = decimal.Parse(Console.ReadLine());
                }
                catch (Exception e)
                {
                    Console.WriteLine("Incorect format for money or money are zero or negative.");
                    shoppingMoney = 0;
                }
            } while (shoppingMoney <= 0);
                   
            string command = Console.ReadLine();
            while (command != "mall.Enter")
            {
                command = Console.ReadLine();
            }
            int purchases = 0;
            decimal price = 0;
            command = Console.ReadLine();
            numberRows = 1;
 
            while (command != "mall.Exit" && numberRows <= 20)
            {
                if (command.Length > 20)
                {
                    command = command.Substring(0, 20);
                }
                foreach(char action in command)
                {
                    if (action >= 'A' && action <= 'Z')
                    {
                        // Console.WriteLine("ASCII Cap: " + (int)action);
                        price = action * 0.5m;
                        if (shoppingMoney < price)
                        {
                            continue;
                        }
                        shoppingMoney -= price;
                        purchases++;
                    } else if (action >= 'a' && action <= 'z')
                    {
                        // Console.WriteLine("ASCII Small: " + (int)action);
                        price = action * 0.3m;
                        if (shoppingMoney < price)
                        {
                            continue;
                        }
                        shoppingMoney -= price;
                        purchases++;
                    } else if (action == '%')
                    {
                        // Console.WriteLine("ASCII %: " + (int)action);
                        if (shoppingMoney > 0)
                        {
                            price = shoppingMoney / 2.0m;
                            shoppingMoney -= price;
                            purchases++;
                        }
                    } else if (action == '*')
                    {
                        // Console.WriteLine("ASCII *: " + (int)action);
                        shoppingMoney += 10m;
                    } else
                       {
                        // Console.WriteLine("ASCII other: " + (int)action);
                        price = action;
                        if (shoppingMoney < price)
                        {
                            continue;
                        }
                        shoppingMoney -= price;
                        purchases++;
                    }
                } // while foreach
                               
                command = Console.ReadLine();
                numberRows++;
} // while mall.Exit
            if (purchases == 0)
                Console.WriteLine("No purchases. Money left: {0:0.00} lv.", shoppingMoney);
            else
                Console.WriteLine("{0} purchases. Money left: {1:0.00} lv.", purchases, shoppingMoney);
        }
    }
}
Здравейте, Димитър,
Благодаря за отговора.
В условието е казано:
"- Броят стрингове между "
mall.Enter" и "mall.Exit" ще в интервала: [1-20].- Броят символи във всеки стринг, който представлява команда, ще е в интервала: [1-20]"
Поздрави,
Мариана