Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Реализация перебора


Автор: sofware 1.12.2006, 22:13
Дано N прямоугольников, стороны которых паралельны осям координат.
Найти площадь, которую занимают эти прямоугольники.
Входящие данные(файл Priam.in):
В первой строке находится N(N<=3000).
Далее в следующих N строках находятся координаты левого верхнего и правого нижнего угла каждого прямоугольника(координаты - целые числа в пределах от 0 до 1000000).
Исходящие данные(файл Priam.out):
В исходящий файл записать одно число - площадь покрытую прямоугольниками. Результат записать с тремя знаками после запятой.
Пример:
Priam.in
3
1 2 3 1
2 2 3 1
2 4 3 2
Priam.out
5.000

Автор: kali 2.12.2006, 15:59
Агоритм решения:
1. Перебираешь все пары прямоугольников, проверяшь пересекаются они или нет, и суммируешь полощади пересечения.
Прямоугольники однозначно пересекаются если одновременно пересекаются их проекции на оси х и у. В зависимости от типа пересечения (проекции могут накладываться друг на друга или одна может включать в себя другую) будет несколько вариантов расчета площади пересечения(4 штуки).
2. От суммарной площади прямоугольников отнимаешь суммарную площадь пересечений.

Автор: sofware 2.12.2006, 18:23
АЛГОРИТМ я знаю, мне нужна реализация smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)