Олимпиада
началась в h1 час m1 мин s1 сек, а закончилась в эти же календарные сутки в h2 час m2 мин s2
сек. Сколько времени (час мин сек)
проходила олимпиада?
Вход. В первой
строке записано время начала, а во второй время окончания олимпиады в формате час мин сек (0 ≤ h1 ≤ h2 ≤ 23, 0 ≤ m1, m2 ≤ 59, 0 ≤ s1, s2
≤ 59).
Выход. Вывести
время продолжительности олимпиады в формате час мин сек.
Пример входа |
Пример выхода |
9 30 0 12 45 30 |
3 15 30 |
математика
Вычислим
время начала олимпиады в секундах
r1 = h1
* 3600 + m1 * 60 + s1
и время
конца
r2 = h2
* 3600 + m2 * 60 + s2
Олимпиада
продолжалась d = r2 – r1
секунд. Осталось из общего количества секунд d выделить количество часов h,
минут m и секунд s:
h = d / 3600, m = (d % 3600) / 60, s = d % 60
Отметим,
что для вычисленных значений h, m и s
имеет место соотношение:
d = h * 3600 + + m
* 60 + s
Реализация алгоритма
Читаем входные данные. Вычисляем
время начала r1 и конца r2 олимпиады в секундах.
scanf("%d %d %d",&h1,&m1,&s1);
r1 = h1 * 3600 + m1 * 60 + s1;
scanf("%d %d %d",&h2,&m2,&s2);
r2 = h2 * 3600 + m2 * 60 + s2;
Вычисляем длительность олимпиады d = r2
– r1.
d = r2 - r1;
Выделяем
количество часов h, минут m и секунд s.
h = d / 3600; m = (d % 3600) / 60; s = d % 60;
Выводим
ответ.
printf("%d %d %d\n",h,m,s);
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int h1 = con.nextInt(), m1 = con.nextInt(), s1 = con.nextInt();
int r1 = h1 * 3600 + m1 * 60 + s1;
int h2 = con.nextInt(), m2 = con.nextInt(), s2 = con.nextInt();
int r2 = h2 * 3600 + m2 * 60 + s2;
int d = r2 - r1;
int h = d / 3600, m = (d % 3600) / 60, s = d % 60;
System.out.println(h + " " + m + " " + s);
con.close();
}
}
Python реализация
h1, m1, s1 = map(int,input().split())
r1 = h1 * 3600 + m1 * 60 + s1
h2, m2, s2 = map(int,input().split())
r2 = h2 * 3600 + m2 * 60 + s2
d = r2 - r1
h = d // 3600
m = (d % 3600) // 60
s = d % 60
print(h, m, s)