Loading...
Monteso avatar Monteso 1 Точки

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

Тагове:
0
Programming Basics
dvdty avatar dvdty 497 Точки

Нямаш нужда от всички тези променливи, може да стане по-лесно:

int days = int.Parse(Console.ReadLine());
int dancers = int.Parse(Console.ReadLine());

double energy = 0;
double energySum = 100 * days * dancers;

for (int i = 1; i <= days; i++) {
  int hours = int.Parse(Console.ReadLine());

  if (i % 2 == 0 && hours % 2 == 0) {
    energy += 68;
  } else if (i % 2 == 1 && hours % 2 == 0) {
    energy += 49;
  } else if (i % 2 == 0 && hours % 2 == 1) {
    energy += 65;
  } else if (i % 2 == 1 && hours % 2 == 1) {
    energy += 30;
  }
}

double energyLeft = energySum - (energy*dancers);
double energyLeftPerDancer = energyLeft / dancers / days;

if (energyLeftPerDancer <= 50) {
  Console.WriteLine($"They are wasted! Energy left: {energyLeftPerDancer:f2}");
} else {
  Console.WriteLine($"They feel good! Energy left: {energyLeftPerDancer:f2}");
}

 

0
29/10/2017 23:28:15
ad2bg avatar ad2bg 123 Точки

Броят на танцьорите въобще не влияе на резултата. Това е моето решение, променливата 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}");
            }
        }
    }
}
 

0
Monteso avatar Monteso 1 Точки

Благодаря ви за отговорите, при мен проблемът е бил следният.
Моя for цикъл започваше от 0, и го въртях до i < days.
Във вашите решения започва от 1, и го въртите до i <= days.
От там идва и разликата в сметките, защото четните и нечетните дни се смятаха погрешно.
Благодаря ви за помощта.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.