На Новом проспекте было принято решение запустить два новых автобусных маршрута на разных участках. Известны конечные остановки каждого автобуса. Как можно определить количество остановок, где пассажиры могут пересесть с одного автобуса на другой? Вводятся четыре числа, которые не превышают 109, указывающие номера конечных остановок. Сначала вводится информация для первого автобуса, затем для второго. Как это можно решить на C++?
Информатика 8 класс Алгоритмы и структуры данных определение пересадок автобусные маршруты конечные остановки C++ решение алгоритм пересадок количество остановок программирование на C++ задачи по информатике
Чтобы решить задачу о пересадках между двумя автобусными маршрутами, нам нужно определить, сколько остановок пересекаются между двумя заданными маршрутами. Мы можем представить конечные остановки каждого маршрута как отрезки на числовой прямой. Для этого нам нужно будет выполнить несколько шагов:
Теперь давайте посмотрим на пример кода на C++, который реализует описанный алгоритм:
#include <iostream> #include <algorithm> // Для функции std::max и std::min int main() { int A, B, C, D; // Ввод конечных остановок для первого маршрута std::cout << "Введите конечные остановки для первого автобуса (A и B): "; std::cin >> A >> B; // Ввод конечных остановок для второго маршрута std::cout << "Введите конечные остановки для второго автобуса (C и D): "; std::cin >> C >> D; // Определяем диапазоны int start1 = std::min(A, B); int end1 = std::max(A, B); int start2 = std::min(C, D); int end2 = std::max(C, D); // Находим пересечение int startIntersection = std::max(start1, start2); int endIntersection = std::min(end1, end2); // Подсчет количества пересекающихся остановок if (startIntersection <= endIntersection) { int count = endIntersection - startIntersection + 1; std::cout << "Количество пересекающихся остановок: " << count << std::endl; } else { std::cout << "Пересекающихся остановок нет." << std::endl; } return 0; }
Этот код сначала запрашивает у пользователя конечные остановки для двух маршрутов, затем вычисляет диапазоны остановок и находит пересечения. В конце программа выводит количество пересекающихся остановок или сообщает, что пересечений нет.