Simple C++ implementation to find area of union of rectilinear rectangles.

.gitignore | ||

areas.cpp | ||

areas.h | ||

benchmark.cpp | ||

CMakeLists.txt | ||

geometry.h | ||

LICENSE | ||

main.cpp | ||

README.md | ||

segment_tree.cpp | ||

segment_tree.h |

## Problem statement

This solves the following problem:

```
Given a set of rectilinear rectangles in the plane, each by coordinates of opposing corners,
calculate the area of their union.
```

It was a task to show that this is solvable in `O(n^2)`

on one of my exercise sheets.
Because I had some spare time, I decided to implement this.

Actually, this can be done in `O(nlog n)`

time using a sweepline algorithm
that makes use of segment trees.

The implementation tries to be reasonably fast and respects `nlog n`

running time,
but is certainly not too optimized and more of a showcase.

## Build

A standard `C++`

installation along with `CMake`

should to the job.
Remove the benchmark targets if you do not need them.

## Benchmark

Just for fun, I played around with the Google Benchmark Library. You will have to install the library and statically link to it to run the benchmarks. See the github page of the benchmark library for details.