Loading...
arnold avatar arnold 50 Точки

Counter Strike

Отново зацепих на задача от примерен изпит. Не мога да си открия защо ми гърми в judge, какво ли не сменям, работи си с примерните входове и изходи, обаче ми дава хиляда пъти 42/100. Ако някой може да помогне, тъй като аз вече идея нямам.Започвам да се чудя, аз ли нещо не виждам или не разбирам в условието, или просто трябва решението да ми е 1 към 1 с това в системата.

Сменям типове данни, дадени са по условие с int, но пробвам и с double, търся уловка и пак не мърда от 42/100:https://pastebin.com/zVE8PNaL

 

 

https://judge.softuni.bg/Contests/Practice/Index/2305#0

Programming Fundamentals Mid Exam Retake 07 April 2020

Problem 1. Counter Strike

Write a program that keeps track of every won battle against an enemy. You will receive initial energy. Afterwards you will start receiving the distance you need to go to reach an enemy until the "End of battle" command is given, or until you run out of energy.

The energy you need for reaching an enemy is equal to the distance you receive. Each time you reach an enemy, your energy is reduced. This is considered a successful battle (win). If you don't have enough energy to reach an the enemy, print:

"Not enough energy! Game ends with {count} won battles and {energy} energy"

and end the program.

Every third won battle increases your energy with the value of your current count of won battles.

Upon receiving the "End of battle" command, print the count of won battles in the following format:

"Won battles: {count}. Energy left: {energy}"

Input / Constraints

  • On the first line you will receive initial energy – an integer [1-10000].
  • On the next lines, you will be receiving distance of the enemy – an integer [1-10000]

Output

  • The description contains the proper output messages for each case and the format in which they
    should be print.

Examples

Input

Output

Comments

100

10

10

10

1

2

3

73

10

Not enough energy! Game ends with 7 won battles and 0 energy

Initial energy is 100. The first distance is 10, so we subtract 10 from 100 and we consider this a won battle. We are left with 90 energy. Next distance – 10, and 80 energy left.

Next distance – 10, 3 won battles and 70 energy, but since we have 3 won battles, we increase the energy with the current count of won battle, in this case – 3 and it becomes 73.

The last distance we receive – 10 is unreachalble since we have 0 energy, so we print the appropriate message and the program ends.

200

54

14

28

13

End of battle

Won battles: 4. Energy left: 94

 

Тагове:
0
Fundamentals Module 04/07/2021 15:27:06
Axiomatik avatar Axiomatik 2422 Точки
Best Answer
using System;
 
namespace CounterStrike
{
    class Program
    {
        static void Main(string[] args)
        {
            double energy = double.Parse(Console.ReadLine()); // int can also be used
            int wins = 0;
 
            string command = Console.ReadLine();
 
            while (command != "End of battle")
            {               
 
                double distance = double.Parse(command);
 
                if (energy < distance)
                {
                    Console.WriteLine($"Not enough energy! Game ends with {wins} won battles and {energy} energy");
                    // Before exiting the loop, energy must be subtracted otherwise can enter winning validation
                    energy -= distance;
                    break;
                }
 
                energy -= distance;
                wins++;
 
                if (wins % 3 == 0)
                {
                    energy += wins;
                }
 
                command = Console.ReadLine();
            }
 
            if (energy >= 0) // energy needs to be larger or equal to 0
            {
                Console.WriteLine($"Won battles: {wins}. Energy left: {energy}");
            }
 
        }
    }
}

 

0
arnold avatar arnold 50 Точки

Thank you very much! 

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