Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [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 |
АЛГОРИТМ я знаю, мне нужна реализация ![]() |