GCC Code Coverage Report


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

test/cpv/aizu-alds1/alds1_15_d.cpp
Line Branch Exec Source
1 // competitive-verifier: PROBLEM https://onlinejudge.u-aizu.ac.jp/courses/lesson/1/ALDS1/all/ALDS1_15_D
2 #include "../../../src/edh/huffman/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 50 strn s;
8
1/2
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
50 std::cin >> s;
9
1/2
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
50 map<char, u32> mp;
10
3/4
✓ Branch 4 taken 1869757 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 1869757 times.
✓ Branch 9 taken 50 times.
1869807 for (char c : s) ++mp[c];
11 50 vec<char> dict;
12 50 vecu w;
13
5/8
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 50 times.
✗ Branch 5 not taken.
✓ Branch 10 taken 942 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 942 times.
✓ Branch 14 taken 50 times.
1934 for (auto [k, v] : mp) {
14
1/2
✓ Branch 1 taken 942 times.
✗ Branch 2 not taken.
942 dict.push_back(k);
15
1/2
✓ Branch 1 taken 942 times.
✗ Branch 2 not taken.
942 w.push_back(v);
16 }
17
2/2
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 42 times.
50 if (w.size() < 3) {
18
2/2
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 4 times.
8 if (w.size() == 1)
19
2/4
✓ Branch 2 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 4 times.
✗ Branch 6 not taken.
4 std::cout << w[0] << "\n";
20 else
21
2/4
✓ Branch 3 taken 4 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 4 times.
✗ Branch 7 not taken.
4 std::cout << w[0] + w[1] << "\n";
22 8 return 0;
23 }
24 42 huffman<u32> hf(w);
25 42 auto x = hf.encode();
26 42 u64 ans = 0;
27
2/2
✓ Branch 4 taken 930 times.
✓ Branch 5 taken 42 times.
972 flt_ (u32, i, 0, (u32)w.size()) ans += w[i] * x[i].size();
28
2/4
✓ Branch 1 taken 42 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 42 times.
✗ Branch 5 not taken.
42 std::cout << ans << '\n';
29 42 return 0;
30 50 }
31