Задача Задача №1854180
А
А
Для решения данной задачи на языке C++, можно воспользоваться следующей логикой:
- Сначала необходимо прочитать время отправления поезда в формате "HH:MM".
- Затем считываем время в пути, состоящее из часов и минут.
- После этого нужно преобразовать все данные в минуты для удобства вычислений.
- Добавляем время в пути к времени отправления, затем преобразуем полученные минуты обратно в формат "HH:MM".
- Не забудьте учесть случаи, когда время прибытия может перейти на следующий день (24:00 и далее).
Вот пример кода, который решает данную задачу:
#include <iostream>
#include <fstream>
#include <sstream>
int main() {
// Открытие входного файла для чтения
std::ifstream input("INPUT.TXT");
std::string departureTime;
std::getline(input, departureTime);
int travelHours, travelMinutes;
input >> travelHours >> travelMinutes;
input.close();
// Разделение времени отправления на часы и минуты
int hour, minute;
char colon; // Для игнорирования символа ":"
std::istringstream(departureTime) >> hour >> colon >> minute;
// Перевод времени отправления в минуты
int totalMinutes = hour * 60 + minute;
// Добавление времени в пути
totalMinutes += travelHours * 60 + travelMinutes;
// Получение времени прибытия
int arrivalHour = (totalMinutes / 60) % 24; // Часы прибытия
int arrivalMinute = totalMinutes % 60; // Минуты прибытия
// Форматирование времени прибытия
std::ostringstream output;
output << (arrivalHour < 10 ? "0" : "") << arrivalHour << ":"
<< (arrivalMinute < 10 ? "0" : "") << arrivalMinute;
// Открытие выходного файла для записи
std::ofstream outputFile("OUTPUT.TXT");
outputFile << output.str();
outputFile.close();
return 0;
}
Объяснение кода:
- Чтение данных: Сначала программа открывает входной файл и считывает время отправления и время в пути.
- Парсинг времени: Затем время отправления разбивается на часы и минуты.
- Перевод в минуты: Время отправления преобразуется в общее количество минут.
- Добавление времени в пути: К общему числу минут добавляется время в пути (также переведенное в минуты).
- Расчет прибытия: Программа вычисляет часы и минуты прибытия, учитывая возможный переход на следующий день (используя
% 24). - Вывод результата: Результирующее время форматируется и записывается в выходной файл.
Таким образом, программа корректно рассчитывает время прибытия поезда на конечную станцию.