test/cpv_local/geo2d/tcenter_o.uva190.cpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // competitive-verifier: LOCALCASE test/cpv_local/_data/uva/190 | ||
| 2 | |||
| 3 | #include "../../../src/geo2d/tcenter/o/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 Triangle2 = triangle<data_t>; | ||
| 10 | |||
| 11 | 34 | strn get_s1(char var, data_t val) { | |
| 12 |
4/6✓ Branch 1 taken 2 times.
✓ Branch 2 taken 32 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
38 | if (is_zero(val)) return strn{var} + "^2"; |
| 13 |
2/2✓ Branch 1 taken 21 times.
✓ Branch 2 taken 11 times.
|
32 | char op = is_pos(val) ? '-' : '+'; |
| 14 |
1/2✓ Branch 1 taken 32 times.
✗ Branch 2 not taken.
|
32 | std::stringstream ss; |
| 15 |
1/2✓ Branch 1 taken 32 times.
✗ Branch 2 not taken.
|
32 | ss << std::fixed << std::setprecision(3); |
| 16 |
1/2✓ Branch 2 taken 32 times.
✗ Branch 3 not taken.
|
32 | ss << abs(val); |
| 17 | 32 | strn ret; | |
| 18 |
1/2✓ Branch 1 taken 32 times.
✗ Branch 2 not taken.
|
32 | ss >> ret; |
| 19 |
7/14✓ Branch 1 taken 32 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 32 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 32 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 32 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 32 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 32 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 32 times.
✗ Branch 20 not taken.
|
64 | return strn{'('} + var + ' ' + op + ' ' + ret + ")^2"; |
| 20 | 32 | } | |
| 21 | |||
| 22 | 1 | int main() { | |
| 23 | Triangle2 t; | ||
| 24 |
3/4✓ Branch 2 taken 18 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✓ Branch 5 taken 1 time.
|
18 | while (cin >> t) { |
| 25 | 17 | Point2 o = center_O(t); | |
| 26 | 17 | data_t r = dist_PP(o, t.A); | |
| 27 |
9/18✓ Branch 1 taken 17 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 17 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 17 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 17 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 17 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 17 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 17 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 17 times.
✗ Branch 25 not taken.
✓ Branch 27 taken 17 times.
✗ Branch 28 not taken.
|
17 | cout << std::fixed << std::setprecision(3) << get_s1('x', o.x) << " + " << get_s1('y', o.y) << " = " << r << "^2\nx^2 + y^2 "; |
| 28 | 17 | data_t F = o.x * o.x + o.y * o.y - r * r; | |
| 29 |
6/6✓ Branch 0 taken 3 times.
✓ Branch 1 taken 14 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 9 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 7 times.
|
17 | char opx = o.x < 0 ? '+' : '-', opy = o.y < 0 ? '+' : '-', opF = F < 0 ? '-' : '+'; |
| 30 | 17 | o.x = abs(o.x); | |
| 31 | 17 | o.y = abs(o.y); | |
| 32 | 17 | F = abs(F); | |
| 33 |
6/10✓ Branch 1 taken 16 times.
✓ Branch 2 taken 1 time.
✓ Branch 4 taken 16 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 16 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 16 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 14 not taken.
|
17 | if (!is_zero(o.x)) cout << opx << ' ' << 2 * o.x << "x "; |
| 34 |
6/10✓ Branch 1 taken 16 times.
✓ Branch 2 taken 1 time.
✓ Branch 4 taken 16 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 16 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 16 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 14 not taken.
|
17 | if (!is_zero(o.y)) cout << opy << ' ' << 2 * o.y << "y "; |
| 35 |
6/10✓ Branch 1 taken 14 times.
✓ Branch 2 taken 3 times.
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 14 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 14 times.
✗ Branch 14 not taken.
|
17 | if (!is_zero(F)) cout << opF << ' ' << F << ' '; |
| 36 |
1/2✓ Branch 1 taken 17 times.
✗ Branch 2 not taken.
|
17 | cout << "= 0\n\n"; |
| 37 | } | ||
| 38 | 1 | } | |
| 39 |