GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 21 / 0 / 21
Functions: 100.0% 1 / 0 / 1
Branches: 58.8% 20 / 0 / 34

test/cpv_local/geo2d/cvh_area.uva10652.cpp
Line Branch Exec Source
1 // competitive-verifier: LOCALCASE test/cpv_local/_data/uva/10652
2
3 #include "../../../src/geo2d/ds/cvh/lib.hpp"
4
5 using namespace tifa_libs;
6 using std::cin, std::cout;
7 using data_t = f64;
8 using Point2 = point<data_t>;
9 using ConvexHull2 = cvh<data_t>;
10
11 CEXP data_t PI = pi_v<data_t>;
12
13 4 int main() {
14
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
4 cout << std::fixed << std::setprecision(1);
15
16 u32 t;
17
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
4 cin >> t;
18
2/2
✓ Branch 0 taken 203 times.
✓ Branch 1 taken 4 times.
207 while (t--) {
19 u32 n;
20
1/2
✓ Branch 1 taken 203 times.
✗ Branch 2 not taken.
203 cin >> n;
21 203 vec<Point2> v;
22 data_t x, y, w, h, phi;
23 203 data_t ans = 0;
24
2/2
✓ Branch 0 taken 21657 times.
✓ Branch 1 taken 203 times.
21860 flt_ (u32, i, 1, n + 1) {
25
5/10
✓ Branch 1 taken 21657 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 21657 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 21657 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 21657 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 21657 times.
✗ Branch 14 not taken.
21657 cin >> x >> y >> w >> h >> phi;
26 21657 phi = phi * PI / 180;
27
2/2
✓ Branch 0 taken 10646 times.
✓ Branch 1 taken 11011 times.
21657 if (phi < 0) phi += 2 * PI;
28 21657 phi = -phi;
29 21657 ans += w * h;
30 21657 Point2 c{x, y};
31
1/2
✓ Branch 4 taken 21657 times.
✗ Branch 5 not taken.
21657 v.emplace_back(c + Point2{w / 2, h / 2}.do_rot(phi));
32
1/2
✓ Branch 4 taken 21657 times.
✗ Branch 5 not taken.
21657 v.emplace_back(c + Point2{-w / 2, h / 2}.do_rot(phi));
33
1/2
✓ Branch 4 taken 21657 times.
✗ Branch 5 not taken.
21657 v.emplace_back(c + Point2{w / 2, -h / 2}.do_rot(phi));
34
1/2
✓ Branch 4 taken 21657 times.
✗ Branch 5 not taken.
21657 v.emplace_back(c + Point2{-w / 2, -h / 2}.do_rot(phi));
35 }
36
2/4
✓ Branch 5 taken 203 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 203 times.
✗ Branch 9 not taken.
203 cout << ans * 100 / ConvexHull2{v}.init().area() << " %\n";
37 203 }
38 4 }
39