GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 28 / 0 / 28
Functions: 100.0% 1 / 0 / 1
Branches: 64.3% 27 / 0 / 42

test/cpv_local/geo2d/dist_ps.uva10263.cpp
Line Branch Exec Source
1 // competitive-verifier: LOCALCASE test/cpv_local/_data/uva/10263
2
3 #include "../../../src/geo2d/dis/ps/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 Line2 = line<data_t>;
10
11 3 int main() {
12
1/2
✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
3 cout << std::fixed << std::setprecision(4);
13
14 data_t x, y;
15
5/8
✓ Branch 1 taken 45 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 45 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 45 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 42 times.
✓ Branch 10 taken 3 times.
45 while (cin >> x >> y) {
16 42 Point2 m{x, y};
17 u32 n;
18
1/2
✓ Branch 1 taken 42 times.
✗ Branch 2 not taken.
42 cin >> n;
19 42 vec<Line2> l;
20
1/2
✓ Branch 1 taken 42 times.
✗ Branch 2 not taken.
42 l.reserve(n + 1);
21 Point2 prev, now;
22 42 cin >> prev;
23
2/2
✓ Branch 0 taken 1024 times.
✓ Branch 1 taken 42 times.
1066 flt_ (u32, i, 1, n + 1) {
24 1024 cin >> now;
25
1/2
✓ Branch 1 taken 1024 times.
✗ Branch 2 not taken.
1024 l.emplace_back(prev, now);
26 1024 prev = now;
27 }
28
2/2
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 41 times.
42 if (!n) {
29
2/4
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
1 cout << prev.x << '\n'
30
2/4
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
1 << prev.y << '\n';
31 1 continue;
32 }
33 41 data_t ans = std::numeric_limits<data_t>::max();
34 41 Point2 ansP{0, 0};
35
2/2
✓ Branch 5 taken 1024 times.
✓ Branch 6 taken 41 times.
1065 for (auto CR i : l) {
36 1024 auto pp = dist_PS_P(m, i);
37 1024 data_t d = dist_PP(pp, m);
38
2/2
✓ Branch 1 taken 110 times.
✓ Branch 2 taken 914 times.
1024 if (is_lt(d, ans)) {
39 110 ans = d;
40 110 ansP = pp;
41 }
42 }
43
2/4
✓ Branch 1 taken 41 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 41 times.
✗ Branch 5 not taken.
41 cout << ansP.x << '\n'
44
2/4
✓ Branch 1 taken 41 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 41 times.
✗ Branch 5 not taken.
41 << ansP.y << '\n';
45
2/2
✓ Branch 1 taken 41 times.
✓ Branch 2 taken 1 time.
42 }
46 3 }
47