2.3 Структуры

2.3.2 Прибавить секунды

Условие

Дано время суток: часы, минуты и секунды. Определите время, которое наступит через K секунд. При переходе через полночь отсчёт времени начинается снова с 0 0 0. За указанный промежуток может пройти несколько суток; количество прошедших суток выводить не требуется.

Объявите структуру struct Time с целочисленными полями hours, minutes и seconds. Реализуйте функцию void add_seconds(struct Time *time, int delta), которая изменяет время в переданной структуре. Указатель указывает на существующую структуру с корректным временем, а delta неотрицателен. После вызова поля должны оставаться в допустимых диапазонах. Функция не должна выполнять ввод или вывод.

В функции main прочитайте время и K, вызовите add_seconds и выведите изменённые поля. Опционально, для знакомых со ссылками в C++: используйте сигнатуру void add_seconds(struct Time &time, int delta).

Ограничения

Время: 2 секунды. Память: 64 МиБ. Вывод: до 2 МиБ. Стандарты: C11 / C++17.

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

В первой строке вводятся три целых числа h, m, s — часы, минуты и секунды. Во второй строке вводится целое число K. Ограничения: 0 ≤ h ≤ 23, 0 ≤ m, s ≤ 59, 0 ≤ K ≤ 10⁹.

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

Три целых числа в одной строке через пробел — часы, минуты и секунды после прибавления K секунд. Ведущие нули не требуются.

Примеры

Вход 1
12 30 15
45
Ожидаемый выход
12 31 0
Вход 2
23 59 59
1
Ожидаемый выход
0 0 0
Вход 3
1 2 3
172800
Ожидаемый выход
1 2 3

Пробный запуск

Код берётся из редактора. Запуск не создаёт посылку и не влияет на баллы.

Выберите пример или введите свои данные и нажмите «Запустить».

Текущая попытка

Отправьте решение. Этапы и результат появятся здесь автоматически.

Все попытки

Войдите, чтобы видеть свои попытки.

Редактор

Один файл до 64 КиБ · Tab / Shift+Tab — отступ · Esc — выход из редактора · черновик сохраняется для этого аккаунта, задачи и языка.