diff --git a/Miscellaneous/util.cpp b/Miscellaneous/util.cpp new file mode 100644 index 0000000..85c4d2e --- /dev/null +++ b/Miscellaneous/util.cpp @@ -0,0 +1,7 @@ +template // Coordinate compression +void compress (BidirectionalIterator first, BidirectionalIterator last) { + vector tmp(first, last); + sort(tmp.begin(), tmp.end()); + tmp.resize(unique(tmp.begin(), tmp.end()) - tmp.begin()); + for (auto it = first; it != last; it++) *it = lower_bound(tmp.begin(), tmp.end(), *it) - tmp.begin(); +}