• Предмет: Информатика
  • Автор: rakhmanberdievich
  • Вопрос задан 4 месяца назад

Задача D. Водонагреватель
Осень — время, когда часто отключают свет . Впрочем, дома у Илимбека имеется водонагреватель накопительного типа, так что по поводу отключений он переживает не очень сильно.
Включив водонагреватель, Илимбек считает правильным дождаться его полного нагрева. Для
этого требуется k минут, при этом каждую минуту водонагреватель потребляет w ватт.
Дома у Илимбека установлен двухфазный счетчик электроэнергии. Согласно тарифам, начиная
с момента времени h1 часов m1 минут и до момента времени h2 часов m2 минут, электроэнергия
обходится в p тыйын за ватт, а в остальное время — в q тыйын за ватт.
Илимбек включил водонагреватель в момент времени s часов u минут. Ваша задача — определить, сколько (в тыйынах) будет стоить полный нагрев.
Формат входных данных
В первой строке содержится целое число k (1 6 k 6 106) — время (в минутах), необходимое для
полного нагрева водонагревателя.
Во второй строке содержится целое число w (1 6 w 6 106) — количество ватт, потребляемое
водонагревателем в минуту.
В третьей строке содержится целое число p (1 6 p 6 106) — стоимость ватта согласно первому
тарифу.
В четвёртой строке содержится целое число q (1 6 q 6 106) — стоимость ватта согласно второму
тарифу.
В пятой строке содержится целое число h1 (0 6 h1 6 23), а в шестой строке содержится целое
число m1 (0 6 m1 6 59) — час и минута, в которые начинает действовать тариф в p тыйын за ватт.
В седьмой строке содержится целое число h2 (0 6 h2 6 23), а в восьмой строке содержится целое
число m2 (0 6 m2 6 59) — час и минута, в которые начинает действовать тариф в q тыйын за ватт.
В девятой строке содержится целое число s (0 6 s 6 23), а в десятой строке содержится целое
число u (0 6 u 6 59) — час и минута, в которые Илимбек включает водонагреватель.
Формат выходных данных
Выведите единственное целое число — сумму (в тыйынах), в которую обойдется полный нагрев
водонагревателя.


rakhmanberdievich: На c++
rakhmanberdievich: На любом языке

Ответы

Ответ дал: uzchikzagr
0

Ответ:

def get_cost(s, u, h1, m1, h2, m2, p, q):

cost = 0

for i in range(k):

hour = (s + i + u) // 60

minute = (s + i + u) % 60

if (hour >= h1 and minute >= m1) or (hour <= h2 and minute <= m2):

cost += p

else:

cost += q

return cost * w

k = int(input().strip())

w = int(input().strip())

p = int(input().strip())

q = int(input().strip())

h1 = int(input().strip())

m1 = int(input().strip())

h2 = int(input().strip())

m2 = int(input().strip())

s = int(input().strip())

u = int(input().strip())

print(get_cost(s, u, h1, m1, h2, m2, p, q))

Объяснение:

В этом решении используется цикл for для перебора k минут времени нагрева, и для каждой минуты он вычисляет час и минуту текущего времени путем деления и получения модуля общего прошедшего времени. Затем он проверяет, находится ли текущее время в диапазоне, указанном h1, m1, h2 и m2, и добавляет к стоимости p или q в зависимости от результата этой проверки. Наконец, функция возвращает общую стоимость, умножая стоимость минуты на количество минут.

Вас заинтересует