aboutsummaryrefslogtreecommitdiff
path: root/challenge-127/deadmarshal/cpp/ch-2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-127/deadmarshal/cpp/ch-2.cpp')
-rw-r--r--challenge-127/deadmarshal/cpp/ch-2.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/challenge-127/deadmarshal/cpp/ch-2.cpp b/challenge-127/deadmarshal/cpp/ch-2.cpp
new file mode 100644
index 0000000000..23784eb6bc
--- /dev/null
+++ b/challenge-127/deadmarshal/cpp/ch-2.cpp
@@ -0,0 +1,37 @@
+#include<iostream>
+#include<vector>
+
+struct Interval
+{
+ friend std::ostream &operator<<(std::ostream &os,
+ const Interval &interval)
+ {
+ os << '(' << interval.x << ',' << interval.y << ')';
+ return os;
+ }
+
+ int x,y;
+};
+
+template<typename T>
+void conflict_intervals(const std::vector<T> &vec)
+{
+ for(size_t i = 1; i < vec.size(); ++i)
+ {
+ bool b = false;
+ for(size_t j = 0; j < i ; ++j)
+ if((vec.at(i).x >= vec.at(i).x) && (vec.at(i).x <= vec.at(j).y)) b = true;
+ if(b) std::cout << vec.at(i) << ' ';
+ }
+ std::cout << '\n';
+}
+
+int main()
+{
+ std::vector<Interval> vec1{{1,4},{3,5},{6,8},{12,13},{3,20}};
+ std::vector<Interval> vec2{{3,4},{5,7},{6,9},{10,12},{13,15}};
+ conflict_intervals<Interval>(vec1);
+ conflict_intervals<Interval>(vec2);
+ return 0;
+}
+