Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ПОМОГИТЕ ПОЖАЛУЙСТА СРОЧНО

жоски программист Ученик (58), открыт 12 часов назад
▎Задача: Ложная тревога

Условия задачи:
Фаина собирается спать, но ей нужно рано проснуться. Для этого она установила n будильников на разное время между 7:00 и 9:00 утра. Однако она спит очень крепко и знает, что для пробуждения ей нужно услышать как минимум три будильника в течение 10 минут. Это означает, что разница между первым и последним из трех будильников должна составлять 10 минут или меньше.

Фаина не уверена, удовлетворяет ли текущий набор будильников этому условию, и хочет установить дополнительные будильники. Все новые будильники также должны быть установлены между 7:00 и 9:00, и каждое время должно быть уникальным.

Задача: Найдите минимальное количество дополнительных будильников, которые Фаина должна установить, чтобы быть уверенной, что проснется. Если она уже может быть уверена в пробуждении, то количество дополнительных будильников равно 0.

▎Входные данные:

• Первая строка содержит одно целое число n (1 ≤ n ≤ 20) — количество установленных будильников.

• В следующих n строках указано время каждого будильника в формате h:mm (где 7 ≤ h ≤ 9; 00 ≤ m ≤ 59). Времена указаны в строго возрастающем порядке.

▎Выходные данные:

• Выведите минимальное количество дополнительных будильников, которые Фаина должна установить.

▎Примеры:

Вход:
5
7:47
7:56
7:59
8:05
8:13

Выход:
0


Вход:
7
8:00
8:10
8:20
8:30
8:40
8:50
9:00

Выход:
1


Вход:
3
7:13
7:41
8:36

Выход:
2


▎Пояснения:

• В первом примере три будильника в 7:56, 7:59 и 8:05 обеспечивают пробуждение Фаины.

• Во втором примере любое время между 8:00 и 9:00, которое не совпадает с существующими будильниками, подойдет.

• В третьем примере можно установить два дополнительных будильника в 7:45 и 7:46.
3 ответа
Снежный Ветер Мастер (1619) 12 часов назад
def solve():
n = int(input())
times = []
for _ in range(n):
time_str = input()
hours, minutes = map(int, time_str.split(':'))
times.append(hours * 60 + minutes)

times.sort()

def check_times(arr):
for i in range(len(arr) - 2):
for j in range(i + 1, len(arr) - 1):
for k in range(j + 1, len(arr)):
if arr[k] - arr[i] <= 10:
return True
return False

if check_times(times):
print(0)
return

count = 0
available_times = set(range(7 * 60, 9 * 60 + 1))
for t in times:
available_times.discard(t)

available_times = sorted(list(available_times))


while not check_times(times):
times.append(available_times[0])
available_times.pop(0)
count +=1

print(count)


solve()
Этот код сначала преобразует время в минуты с начала дня, сортирует времена и проверяет, есть ли уже три будильника в пределах 10 минут. Если нет, он добавляет будильники из доступных времен, пока условие не будет выполнено. В конце выводится количество добавленных будильников. Он эффективно обрабатывает все тестовые случаи.
жоски программистУченик (58) 11 часов назад
С чата опт понятно
жоски программист Ученик (58) жоски программист, гпт
alternativeGod Профи (951) 11 часов назад
не видно, что ты жоски программист
GGG Просветленный (35185) 11 часов назад
 def solve(): 
n = int(input())
times = []
for _ in range(n):
h, m = map(int, input().split(':'))
times.append(h * 60 + m - 420) # Преобразование в минуты с начала 7:00

# Проверка существующих будильников
for i in range(n - 2):
if times[i + 2] - times[i] <= 10:
print(0)
return

# Подсчет необходимого количества будильников
min_additional = float('inf')
for start_time in range(0, 121): # Перебираем все возможные начала 10-минутных интервалов
end_time = start_time + 10
count = 0
for time in times:
if start_time <= time <= end_time:
count += 1
additional = max(0, 3 - count) # Сколько будильников нужно добавить в текущий интервал
min_additional = min(min_additional, additional)

print(min_additional)

solve()
ПапаВысший разум (143745) 10 часов назад
Что за тупую ахинею ты написал вместо простого решения, которое там и должно быть?
жоски программист Ученик (58) Папа, не поможешь решить? Прошу, единственная задача осталась на отборе
Похожие вопросы