Условие задачи | | Прогресс |
Темы:
Задачи на моделирование
Дата и время
На одном из московских вокзалов билеты продают N касс. Каждая касса работает без перерыва определенный промежуток времени по фиксированному расписанию (одному и тому же каждый день). Требуется определить, на протяжении какого времени в течение суток работают все кассы одновременно.
Входные данные
Сначала вводится одно целое число N (0 < N ≤ 1000).
В каждой из следующих N строк через пробел расположены 4 целых числа, первые два из которых обозначают время открытия кассы в часах и минутах (часы — целое число от 0 до 23, минуты — целое число от 0 до 59), оставшиеся два — время закрытия в том же формате. Числа разделены пробелами.
Время открытия означает, что в соответствующую ему минуту касса уже работает, а время закрытия — что в соответствующую минуту касса уже не работает. Например, касса, открытая с 10 ч. 30 мин. до 18 ч. 30 мин., ежесуточно работает 480 минут.
Если время открытия совпадает с временем закрытия, то касса работает круглосуточно. Если первое время больше второго, то касса начинает работу до полуночи, а заканчивает — на следующий день.
Выходные данные
Требуется вывести одно число — суммарное время за сутки (в минутах), на протяжении которого работают все N касс.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснения |
1 |
3
1 0 23 0
12 0 12 0
22 0 2 0 |
120 |
Первая касса работает с часу до 23 часов, вторая – круглосуточно, третья – с 22 часов до 2 часов ночи следующего дня. Таким образом, все три кассы одновременно работают с 22 до 23 часов и с часу до двух часов, то есть 120 минут. |
2 |
2
9 30 14 0
14 15 21 0 |
0 |
Первая касса работает до 14 часов, а вторая начинает работать в 14 часов 15 минут, то есть одновременно кассы не работают. |
3 |
2
14 00 18 00
10 00 14 01 |
1 |
Вместе кассы работают лишь одну минуту – с 14:00 до 14:01 (в 14:01 вторая касса уже не работает). |
| |
|
Темы:
Условный оператор
Одномерные массивы
Дата и время
Перебор
Будильник в сотовом телефоне можно настроить так, чтобы он звонил каждый день в одно и то же время, либо в указанное время в определенный день недели. Независимо можно настроить несколько будильников.
По информации о будильниках и текущему времени и дню недели определите, когда прозвонит очередной будильник.
Входные данные
В первой строке вводятся три числа, задающие текущее время: день недели (от 1 до 7), часы и минуты.
Во второй строке вводится одно натуральное число N, не превосходящее 100 – количество будильников.
В следующих N строках вводятся описания N будильников. Описание каждого будильника состоит из трех чисел: дня недели (число от 1 до 7 для понедельника, …, воскресенья, соответственно, 0 – если будильник должен звонить каждый день), часов (от 0 до 23), минут (от 0 до 59).
Выходные данные
Выведите через пробел три числа, задающие день недели, часы и минуты, когда прозвонит ближайший будильник.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
2 10 20
2
1 23 15
0 10 10 |
3 10 10 |
|
2 |
7 1 1
3
7 0 59
7 23 59
7 1 1 |
7 1 1 |
Во втором примере третий будильник будет звенеть в начальный момент времени. |
| |
|
Темы:
Дата и время
Васе подарили два ежедневника на i-й год. Один он использовал в i-м году и теперь интересуется, когда наступит следующий год с точно таким же календарем, чтобы он мог воспользоваться вторым ежедневником.
Входные данные
Вводится одно натуральное число i, не превышающее 2011.
Выходные данные
Выведите одно число - номер года, когда можно будет использовать второй ежедневник.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
2011 |
2022 |
2 |
1 |
7 |
| |
|
Темы:
Дата и время
Таня решила позвонить своей подруге, но вспомнила, что та живёт очень далеко, поэтому в часовом поясе подруги может быть слишком поздно или рано. Часы у Тани показывают ровно H часов, Таня живёт в часовом поясе с ними UTC+A, а её подруга – в часовом поясе UTC+B. Помогите Тане определить время в часовом поясе подруги в этот момент.
Программа получает на вход три целых числа H, A и B, 0 ≤ H ≤ 23, −11 ≤ A ≤ 12, −11 ≤ B ≤ 12.
В часовом поясе UTC+A местное время больше, чем время в часовом поясе UTC+0 на A часов (если же A < 0, то меньше на |A| часов). Например, если в часовом поясе UTC+0 сейчас 12 часов, то в часовом поясе UTC+1 – 13 часов, а в часовом поясе UTC−1 – 11 часов.
Программа должна вывести одно число – время (количество часов) в часовом поясе подруги.
Под временем в этой задаче подразумевается количество часов, которое может принимать значения от 0 до 23. При решении задачи обратите внимание, что в часовом поясе подруги может быть уже следующая дата или предыдущая дата, программа должна вывести количество часов на часах подруги в этот момент, то есть число от 0 до 23.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
15
3
-5 |
7 |
У Тани – 15 часов, она живёт в часовом поясе UTC+3. В часовом
поясе UTC+0 сейчас 12 часов. Подруга живёт в часовом поясе UTC−5,
и у неё сейчас 7 часов.
|
| |
|