Mid Exam 2019 Maрт Група 1 Задача 2 10/100
Реално объркването ми на първа задача беше доста по-голямо, бих казал че тук ми отне повече време да я напиша отколкото да я измисля, някак си задания с по-сложни типове данни и конструкции са ми по-лесни. Въпреки, че нулевите тестове минаха безгрешно от първият път и въпреки, че ми изглежда проста задачата, така както съм я описал джъдж не дава точки. Случвало се е да променят задачите вътрешно в системата докато документа с условието остава стара версия, но това което не ми се иска най-много е да е заради някой знак за равенство.Някакви идеи?
Джъдж: https://judge.softuni.bg/Contests/Practice/Index/1494#1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
decimal budget = decimal.Parse(Console.ReadLine());
decimal endProfit = 0;
string[] types = input.Split('|').ToArray();
List<decimal> reSell = new List<decimal>();
foreach (var item in types)
{
string[] items = item.Split(new char[] { '-', '>' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
string type = items[0];
decimal priceTag = Convert.ToDecimal(items[1]);
if (type == "Clothes" && priceTag <= 50.00M && budget >= 50.00M)
{
reSell.Add(Math.Round(priceTag * 1.4M, 2));
budget -= priceTag;
endProfit += reSell[reSell.Count - 1] - priceTag;
}
else if (type == "Shoes" && priceTag <= 35.00M && budget >= 35.00M)
{
reSell.Add(Math.Round(priceTag * 1.4M, 2));
budget -= priceTag;
endProfit += reSell[reSell.Count - 1] - priceTag;
}
else if (type == "Accessories" && priceTag <= 20.50M && budget >= 20.50M)
{
reSell.Add(Math.Round(priceTag * 1.4M, 2));
budget -= priceTag;
endProfit += reSell[reSell.Count - 1] - priceTag;
}
}
Console.WriteLine(string.Join(" ", reSell.Select(r => r.ToString()).ToArray()));
Console.WriteLine($"Profit: "+ endProfit);
if (reSell.Sum() + budget >= 150)
{
Console.WriteLine("Hello, France!");
}
else
{
Console.WriteLine("Time to go.");
}
}
}
}
Бюджетът трябва да е по-голям или равен на прайстага(budget >= priceTag), а не: budget >= 50.00M, 35.00M, 20.50M.
if (type == "Clothes" && priceTag <= 50.00M && budget >= 50.00M)
Вече сериозно се излагат, това е втората задача от изпита, а както и първата също има проблеми с условието!
Като ти се каже rounded значи закръгляш, като ти пише да ги форматираш с 2 знака след запетаята е съвсем друго.
Между другото като форматирах принтовете даде още 10 точки, и понеже на вас ви дава повече ме съмнява че проблемът е в прецизността на decimal и може да дава отклонения достатъчни, за да да объркат резултатите. А може би за това не получавате 100 т, защото в pastebin-a са ползвани само double-ли.
И това не помага особенно, но сега съм изморен утре ще сравня решенията. И пак ще се включа.
Ето редактирания код : https://pastebin.com/Hrhvm46c