4.19.*Даны два прямоугольника, стороны которых параллельны или перпендикуляр- ны осям координат. Известны координаты левого нижнего угла каждого из них
и длины их сторон. Найти координаты левого нижнего и правого верхнего уг-
лов минимального прямоугольника, содержащего указанные прямоугольники.
С++
Пример искомого минимального прямоугольника приведен на рисунке. Для левого нижнего угла координаты совпадают с минимальными координатами левых нижних углов прямоугольников, для правого верхнего - с максимальными.
Код (С++):
#include <iostream>
int main() {
int x1, y1, w1, h1, x2, y2, w2, h2;
std::cin >> x1 >> y1 >> w1 >> h1;
std::cin >> x2 >> y2 >> w2 >> h2;
// Lower-left corner
if (x1 < x2) {
std::cout << x1 << " ";
} else {
std::cout << x2 << " ";
}
if (y1 < y2) {
std::cout << y1 << "\n";
} else {
std::cout << y2 << "\n";
}
// Upper-right corner
x1 += w1; y1 += h1;
x2 += w2; y2 += h2;
if (x1 > x2) {
std::cout << x1 << " ";
} else {
std::cout << x2 << " ";
}
if (y1 > y2) {
std::cout << y1 << "\n";
} else {
std::cout << y2 << "\n";
}
}
Пример ввода:
1 2 3 4
0 3 6 1
Пример вывода:
0 2
6 6
Пояснение к формату ввода-вывода:
- На вход подаются две строки из 4 целых чисел: x, y - координат и ширины и высоты (изменения по x и y) для каждого прямоугольника
- Вывод - координаты левого нижнего и правого верхнего углов