В компании MacroHard в последнее время резко участились опоздания сотрудников. Проанализировав ситуацию, руководство решило, что это вызвано большим разбросом в показаниях наручных часов сотрудников. После дополнительного совещания руководящего состава было постановлено, что все сотрудники должны перевести часы на одно и то же время (не важно какое).
Все сотрудники компании носят исключительно электронные часы одного образца. Время на них отображается в формате HH:MM:SS (где HH — часы, MM — минуты, SS — секунды, всегда отображаются в виде двух цифр, 00≤HH≤23, 00≤MM≤59, 00≤SS≤59). Перевод часов осуществляется с помощью двух кнопок. Первая кнопка меняет поле редактирования следующим образом: после первого нажатия часы переходят из режима отображения времени в режим редактирования поля HH, после второго — в режим редактирования поля MM, после третьего — в режим редактирования поля SS, а после четвертого возвращаются в режим отображения времени и т.д. по циклу. Каждое нажатие второй кнопки приводит к увеличению редактируемого поля на единицу (в режиме отображения времени ничего не происходит). При переполнении секунд поле SS обнуляется, а MM увеличивается на единицу, при переполнении минут поле MM обнуляется, а HH увеличивается на единицу, а при переполнении часов просто обнуляется поле HH.
И все бы хорошо, но, в силу своей природной лени, сотрудники хотят минимизировать суммарное число нажатий кнопок при переводе часов. При этом после перевода часов все часы должны оказаться в режиме отображения времени, в начале все часы также находятся в этом режиме.
Напишите программу, определяющую минимальное суммарное количество нажатий кнопок, достаточное для перевода часов всеми сотрудниками к одному времени.
Первая строка входных данных содержит натуральное число N (1≤N≤200) — количество сотрудников компании. Последующие N строк содержат показания часов каждого из сотрудников в формате "HH:MM:SS".
Выведите одно число — минимальное суммарное количество нажатий.
Система оценки 1 балл получат программы, правильно решающие задачу при ограничении 1≤N≤2.
2 08:01:01 07:59:00
7
По заданному числу n от 1 до 365 определите, на какое число какого месяца приходится день невисокосного года с номером n.
Дано одно целое число n.
Программа должна вывести два числа: число месяца (от 1 до 31) и номер месяца (от 1 до 12), соответствующие дню с номером n.
1
1 1
90
31 3
Неудовлетворенный стандартным календарем своей операционной системы, Витя решил написать программу, которая будет выводить красиво отформатированный календарь. Он разработал формальные требования к календарю, но понял, что сам не способен написать соответствующую программу. Помогите ему.
Календарь состоит из блоков, каждый из которых соответствует одному месяцу. Блоки расположены в виде таблицы из k столбцов и 12/k строк (k выбирается делителем числа 12). Месяцы выводятся в следующем порядке: первая строка содержит блоки, соответствующие месяцам с первого по k-ый, следующая – с (k + 1)-го по 2k-ый, и т. д.
Ширина всех блоков в столбце должна быть одинакова, высота всех блоков равна семи (числу дней в неделе). Между блоками различных строк таблицы выводится пустая строка, в каждой строке между соседними блоками из разных столбцов выводится три пробела.
Блок, соответствующий месяцу, устроен следующим образом. Каждой (в том числе неполной) неделе данного месяца в блоке соответствует столбец, имеющий ширину, равную двум. Между двумя соседними столбцами в каждой строке выводится один пробел. Если несколько блоков располагаются в одном столбце календаря, то для выравнивания ширины в те блоки, которые содержат меньше недель, в конец добавляется необходимое число пустых столбцов-недель. При этом разные столбцы календаря могут иметь разную ширину.
Все числа месяца заносятся в блок, соответствующий этому месяцу. Число заносится строку блока, соответствующую дню недели, на который приходится число в этом месяце. Число заносится в столбец блока, соответствующий неделе, к которой относится данное число. Однозначные числа дополняются слева одним пробелом. Таким образом, числа в столбце оказываются выравнены по правому краю.
![]() | ![]() | |
Общая схема календаря | Схема блока месяца |
На вход прораммы поступает описание года, календарь для которого следует вывести. Оно содержит три числа: d – день недели, на который приходится первое января ( 1d
7), l – является ли год високосным (l = 1 означает, что год является високосными, l = 0 – что не является) и k – количество столбцов в календаре (k – одно из чисел 1, 2, 3, 4, 6, 12).
Напомним, что високосный год отличается от обычного тем, что в високосном году февраль содержит 29 дней.
Выведите календарь, отформатированный в соответствии с условием задачи. Проверяющая программа в этой задаче игнорирует пробелы в конце строк. В остальном календарь должен быть отформатирован в точности так, как описано в условии.
4 1 4
5 12 19 26 2 9 16 23 1 8 15 22 29 5 12 19 26 6 13 20 27 3 10 17 24 2 9 16 23 30 6 13 20 27 7 14 21 28 4 11 18 25 3 10 17 24 31 7 14 21 28 1 8 15 22 29 5 12 19 26 4 11 18 25 1 8 15 22 29 2 9 16 23 30 6 13 20 27 5 12 19 26 2 9 16 23 30 3 10 17 24 31 7 14 21 28 6 13 20 27 3 10 17 24 4 11 18 25 1 8 15 22 29 7 14 21 28 4 11 18 25 3 10 17 24 31 7 14 21 28 5 12 19 26 2 9 16 23 30 4 11 18 25 1 8 15 22 29 6 13 20 27 3 10 17 24 31 5 12 19 26 2 9 16 23 30 7 14 21 28 4 11 18 25 6 13 20 27 3 10 17 24 1 8 15 22 29 5 12 19 26 7 14 21 28 4 11 18 25 2 9 16 23 30 6 13 20 27 1 8 15 22 29 5 12 19 26 3 10 17 24 31 7 14 21 28 2 9 16 23 30 6 13 20 27 4 11 18 25 1 8 15 22 29 6 13 20 27 4 11 18 25 1 8 15 22 29 6 13 20 27 7 14 21 28 5 12 19 26 2 9 16 23 30 7 14 21 28 1 8 15 22 29 6 13 20 27 3 10 17 24 1 8 15 22 29 2 9 16 23 30 7 14 21 28 4 11 18 25 2 9 16 23 30 3 10 17 24 1 8 15 22 29 5 12 19 26 3 10 17 24 31 4 11 18 25 2 9 16 23 30 6 13 20 27 4 11 18 25 5 12 19 26 3 10 17 24 31 7 14 21 28 5 12 19 26
На одном из московских вокзалов билеты продают \(N\) касс. Каждая касса работает без перерыва определенный промежуток времени по фиксированному расписанию (одному и тому же каждый день). Требуется определить, на протяжении какого времени в течение суток работают все кассы одновременно.
Сначала вводится одно целое число \(N\) (0 < \(N\) ≤ 1000).
В каждой из следующих \(N\) строк через пробел расположены 4 целых числа, первые два из которых обозначают время открытия кассы в часах и минутах (часы — целое число от 0 до 23, минуты — целое число от 0 до 59), оставшиеся два — время закрытия в том же формате. Числа разделены пробелами.
Время открытия означает, что в соответствующую ему минуту касса уже работает, а время закрытия — что в соответствующую минуту касса уже не работает. Например, касса, открытая с 10 ч. 30 мин. до 18 ч. 30 мин., ежесуточно работает 480 минут.
Если время открытия совпадает с временем закрытия, то касса работает круглосуточно. Если первое время больше второго, то касса начинает работу до полуночи, а заканчивает — на следующий день.
Требуется вывести одно число — суммарное время за сутки (в минутах), на протяжении которого работают все N касс.
1) Первая касса работает с часу до 23 часов, вторая – круглосуточно, третья – с 22 часов до 2 часов ночи следующего дня. Таким образом, все три кассы одновременно работают с 22 до 23 часов и с часу до двух часов, то есть 120 минут.
2) Первая касса работает до 14 часов, а вторая начинает работать в 14 часов 15 минут, то есть одновременно кассы не работают.
3) Вместе кассы работают лишь одну минуту – с 14:00 до 14:01 (в 14:01 вторая касса уже не работает).
3 1 0 23 0 12 0 12 0 22 0 2 0
120
2 9 30 14 0 14 15 21 0
0
2 14 00 18 00 10 00 14 01
1
Будильник в сотовом телефоне можно настроить так, чтобы он звонил каждый день в одно и то же время, либо в указанное время в определенный день недели. Независимо можно настроить несколько будильников.
По информации о будильниках и текущему времени и дню недели определите, когда прозвонит очередной будильник.
В первой строке вводятся три числа, задающие текущее время: день недели (от 1 до 7), часы и минуты.
Во второй строке вводится одно натуральное число N, не превосходящее 100 – количество будильников.
В следующих N строках вводятся описания N будильников. Описание каждого будильника состоит из трех чисел: дня недели (число от 1 до 7 для понедельника, …, воскресенья, соответственно, 0 – если будильник должен звонить каждый день), часов (от 0 до 23), минут (от 0 до 59).
Выведите через пробел три числа, задающие день недели, часы и минуты, когда прозвонит ближайший будильник.
Комментарий. Во втором примере третий будильник будет звенеть в начальный момент времени.2 10 20 2 1 23 15 0 10 10
3 10 10
7 1 1 3 7 0 59 7 23 59 7 1 1
7 1 1