GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 18 / 0 / 18
Functions: 100.0% 3 / 0 / 3
Branches: 62.5% 25 / 0 / 40

test/cpv/library-checker-tree/dynamic_tree_vertex_add_path_sum.cpp
Line Branch Exec Source
1 // competitive-verifier: PROBLEM https://judge.yosupo.jp/problem/dynamic_tree_vertex_add_path_sum
2 #include "../../../src/ds/link_cut_tree/lib.hpp"
3
4 using namespace tifa_libs;
5 647603175 auto op(u64 a, u64 b) { return a + b; }
6 25256823 auto inv_op(u64 a, u64 b) { return a - b; }
7
8 15 int main() {
9
1/2
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
15 std::cin.tie(nullptr)->std::ios::sync_with_stdio(false);
10 u32 n, m;
11
2/4
✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
15 std::cin >> n >> m;
12
1/2
✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
15 vecuu a(n);
13
3/4
✓ Branch 4 taken 1714722 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 1714722 times.
✓ Branch 9 taken 15 times.
1714737 for (auto& x : a) std::cin >> x;
14
1/2
✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
15 link_cut_tree<u64, op, inv_op> lct(n, a);
15
4/6
✓ Branch 1 taken 1714707 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1714707 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1714707 times.
✓ Branch 8 taken 15 times.
1714722 for (u32 i = 1, u, v; i < n; ++i) std::cin >> u >> v, lct.link(u, v);
16
2/2
✓ Branch 0 taken 1743628 times.
✓ Branch 1 taken 15 times.
1743643 flt_ (u32, i, 0, m) {
17 u32 opt, u, v;
18
3/6
✓ Branch 1 taken 1743628 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1743628 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1743628 times.
✗ Branch 8 not taken.
1743628 std::cin >> opt >> u >> v;
19
2/2
✓ Branch 0 taken 514111 times.
✓ Branch 1 taken 1229517 times.
1743628 if (opt == 0) {
20 u32 p, q;
21
2/4
✓ Branch 1 taken 514111 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 514111 times.
✗ Branch 5 not taken.
514111 std::cin >> p >> q;
22 514111 lct.cut(u, v), lct.link(p, q);
23
2/2
✓ Branch 0 taken 515244 times.
✓ Branch 1 taken 714273 times.
1229517 } else if (opt == 1) lct.node_add(u, v);
24
2/4
✓ Branch 2 taken 714273 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 714273 times.
✗ Branch 6 not taken.
714273 else std::cout << lct.query_path(u, v) << '\n';
25 }
26 15 return 0;
27 15 }
28