| 5 | #include "triangle_union.h" |
| 6 | |
| 7 | dbl solve(vector<vector<int> > rects){ |
| 8 | vector<vector<pt> > processed_rects; |
| 9 | for(const auto& v: rects){ |
| 10 | processed_rects.push_back(vector<pt>()); |
| 11 | processed_rects.back().push_back(pt{(dbl)v[0], (dbl)v[1]}); |
| 12 | processed_rects.back().push_back(pt{(dbl)v[2], (dbl)v[3]}); |
| 13 | processed_rects.back().push_back(pt{(dbl)v[4], (dbl)v[5]}); |
| 14 | processed_rects.back().push_back(pt{(dbl)v[6], (dbl)v[7]}); |
| 15 | } |
| 16 | vector<tuple<pt, pt, pt> > tr; |
| 17 | dbl sum = 0; |
| 18 | for(const auto& r: processed_rects){ |
| 19 | sum += fabs((r[1] - r[0]).cross(r[3] - r[0])); |
| 20 | tr.emplace_back(r[0], r[1], r[2]); |
| 21 | tr.emplace_back(r[2], r[3], r[0]); |
| 22 | } |
| 23 | return sum/union_area(tr); |
| 24 | } |
| 25 | |
| 26 | bool test1(){ |
| 27 | vector<vector<int> > rects = { |
no outgoing calls
no test coverage detected