 + Нов въпрос veselinvalkanov 0 Точки

## 08. Seize the Fire /дава ми 60/100 - някой,ако може да каже защо

```level_of_fire = input().split("#")
water = int(input())

print("Cells:")

all_effort = 0
total_fire1 = 0
for fire in level_of_fire:
args = fire.split(" =")
type = args
cells = int(args)
effort = 0
total_fire = 0

if water < cells:
break
else:

if type == "High":
if 80 < (cells) <= 130:
effort += (cells) * 0.25
water -= (cells)
total_fire += effort * 4

else:
continue

elif type == "Medium":
if 50 < (cells) <= 81:
effort += (cells) * 0.25
water -= (cells)
total_fire += effort * 4

else:
continue

elif type == "Low":
if 1 <= (cells) <= 51:
effort += (cells) * 0.25
water -= (cells)
total_fire += effort * 4

else:
continue

total_fire1 += total_fire
all_effort += effort

print(f" - {cells}")
print(f"Effort: {all_effort:.2f}")
print(f"Total Fire: {int(total_fire1)}")
```
Тагове:
0 MartinBG 2680 Точки

Имаше грешки в range границите на някои от типовете огън, както и не беше спазена тази част от условието:

If you don’t have enough water to put out a given cell – skip it and try the next one.

(изпозван break вместо continue)

Оправения код:

``````level_of_fire = input().split("#")
water = int(input())

print("Cells:")

all_effort = 0
total_fire1 = 0
for fire in level_of_fire:
args = fire.split(" =")
type = args
cells = int(args)
effort = 0
total_fire = 0

if water < cells:
continue
else:

if type == "High":
if 81 <= cells <= 125:
effort += cells * 0.25
water -= cells
total_fire += effort * 4

else:
continue

elif type == "Medium":
if 51 <= cells <= 80:
effort += cells * 0.25
water -= cells
total_fire += effort * 4

else:
continue

elif type == "Low":
if 1 <= cells <= 50:
effort += cells * 0.25
water -= cells
total_fire += effort * 4

else:
continue

total_fire1 += total_fire
all_effort += effort

print(f" - {cells}")
print(f"Effort: {all_effort:.2f}")
print(f"Total Fire: {int(total_fire1)}")
``````

Старал съм се да не правя промени извън фиксовете, но имайте предвид, че повтарянето на код е лоша практика и трябва да се избягва винаги, без изключения.

Имам предвид този блок, който е използван 3 пъти:

``````                effort += cells * 0.25
water -= cells
total_fire += effort * 4``````

Помислете как да го има само веднъж и да бъде преизползван и за трите случая.

0