04. Energy Loss (from Programming Basics Exam - 23 July 2017)
Условие: https://judge.softuni.bg/Contests/Practice/DownloadResource/2271
Имам огромни проблеми с изпитните задачи откакто започнахме циклите. В момента се опитвам да реша тези, които не съм успял вървейки паралелно с материала, и се върнах на Energy Loss от урока "Loops" - 07.10.17.
Това е решението до което стигнах сам. Молбата ми е да кажете дали въобще съм хванал логиката, и ако да къде бъркам. Judge ми показва 20/100.
https://pastebin.com/N8TYGfJb
Броят на танцьорите въобще не влияе на резултата. Това е моето решение, променливата dancers въобще не се използва в алгоритъма.
namespace Energy
{
using System;
class Program
{
static void Main()
{
int days = int.Parse(Console.ReadLine());
int dancers = int.Parse(Console.ReadLine());
int totalEnergy = 100 * days;
int spentEnergy = 0;
for (int day = 1; day <= days; day++)
{
int hrs = int.Parse(Console.ReadLine());
if (day % 2 == 0)
{
if (hrs % 2 == 0)
{
spentEnergy += 68;
}
else
{
spentEnergy += 65;
}
}
else
{
if (hrs % 2 == 0)
{
spentEnergy += 49;
}
else
{
spentEnergy += 30;
}
}
}
int remainingEnergy = totalEnergy - spentEnergy;
if (remainingEnergy > spentEnergy)
{
Console.WriteLine($"They feel good! Energy left: {100.0 * remainingEnergy / totalEnergy:F2}");
}
else
{
Console.WriteLine($"They are wasted! Energy left: {100.0 * remainingEnergy / totalEnergy:F2}");
}
}
}
}
Благодаря ви за отговорите, при мен проблемът е бил следният.
Моя for цикъл започваше от 0, и го въртях до i < days.
Във вашите решения започва от 1, и го въртите до i <= days.
От там идва и разликата в сметките, защото четните и нечетните дни се смятаха погрешно.
Благодаря ви за помощта.