GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 19 / 0 / 19
Functions: 100.0% 1 / 0 / 1
Branches: 63.9% 23 / 0 / 36

test/cpv/aizu-grl/grl_1_c.johnson.cpp
Line Branch Exec Source
1 // competitive-verifier: PROBLEM https://onlinejudge.u-aizu.ac.jp/courses/library/5/GRL/all/GRL_1_C
2 #include "../../../src/graph/sp/johnson/lib.hpp"
3
4 using namespace tifa_libs;
5 50 int main() {
6
1/2
✓ Branch 2 taken 50 times.
✗ Branch 3 not taken.
50 std::cin.tie(nullptr)->std::ios::sync_with_stdio(false);
7 u32 n, m;
8
2/4
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 50 times.
✗ Branch 5 not taken.
50 std::cin >> n >> m;
9 50 CEXP i64 INF = inf_v<i64>;
10 50 vec<edge_t<i64>> arcs;
11
2/2
✓ Branch 0 taken 36464 times.
✓ Branch 1 taken 50 times.
36514 flt_ (u32, i, 0, m) {
12 u32 u, v;
13 i64 w;
14
3/6
✓ Branch 1 taken 36464 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 36464 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 36464 times.
✗ Branch 8 not taken.
36464 std::cin >> u >> v >> w;
15
1/2
✓ Branch 1 taken 36464 times.
✗ Branch 2 not taken.
36464 arcs.emplace_back(w, u, v);
16 }
17 50 auto d = johnson(n, arcs, INF);
18
2/2
✓ Branch 1 taken 7 times.
✓ Branch 2 taken 43 times.
50 if (!d) {
19
1/2
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
7 std::cout << "NEGATIVE CYCLE\n";
20 7 return 0;
21 }
22
3/4
✓ Branch 1 taken 43 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 2103 times.
✓ Branch 9 taken 43 times.
2146 for (auto CR i : d.value())
23
2/2
✓ Branch 0 taken 160357 times.
✓ Branch 1 taken 2103 times.
162460 flt_ (u32, j, 0, n) {
24
2/2
✓ Branch 1 taken 43056 times.
✓ Branch 2 taken 117301 times.
160357 if (i[j] == INF) std::cout << "INF"
25
2/4
✓ Branch 1 taken 43056 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 43056 times.
✗ Branch 5 not taken.
43056 << " \n"[j + 1 == n];
26
2/4
✓ Branch 2 taken 117301 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 117301 times.
✗ Branch 6 not taken.
117301 else std::cout << i[j] << " \n"[j + 1 == n];
27 }
28 43 return 0;
29 50 }
30