GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 14 / 0 / 14
Functions: 100.0% 1 / 0 / 1
Branches: 68.4% 26 / 0 / 38

test/cpv/library-checker-datastructure/associative_array.pbds.cpp
Line Branch Exec Source
1 // competitive-verifier: PROBLEM https://judge.yosupo.jp/problem/associative_array
2 #include "../../../src/util/alias/num/lib.hpp"
3
4 using namespace tifa_libs;
5 20 int main() {
6
1/2
✓ Branch 2 taken 20 times.
✗ Branch 3 not taken.
20 std::cin.tie(nullptr)->std::ios::sync_with_stdio(false);
7 u64 q;
8
1/2
✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
20 std::cin >> q;
9 __gnu_pbds::tree<u64, u64,
10 std::less<u64>, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update> // for benchmark with rbtree
11
1/2
✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
20 tr;
12
2/2
✓ Branch 0 taken 15673163 times.
✓ Branch 1 taken 20 times.
15673183 for (u64 i = 0, op, k, v; i < q; ++i) {
13
2/4
✓ Branch 1 taken 15673163 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 15673163 times.
✗ Branch 5 not taken.
15673163 std::cin >> op >> k;
14
1/2
✓ Branch 1 taken 15673163 times.
✗ Branch 2 not taken.
15673163 auto it = tr.lower_bound(k);
15
2/2
✓ Branch 0 taken 7647884 times.
✓ Branch 1 taken 8025279 times.
15673163 if (op) {
16
7/10
✓ Branch 1 taken 7647884 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4747665 times.
✓ Branch 5 taken 2900219 times.
✓ Branch 7 taken 1764454 times.
✓ Branch 8 taken 2983211 times.
✓ Branch 11 taken 7647884 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 7647884 times.
✗ Branch 15 not taken.
7647884 std::cout << (it != end(tr) && it->first == k ? it->second : 0) << '\n';
17 } else {
18
1/2
✓ Branch 1 taken 8025279 times.
✗ Branch 2 not taken.
8025279 std::cin >> v;
19
7/8
✓ Branch 1 taken 8025279 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5325248 times.
✓ Branch 5 taken 2700031 times.
✓ Branch 7 taken 2151443 times.
✓ Branch 8 taken 3173805 times.
✓ Branch 9 taken 2151443 times.
✓ Branch 10 taken 5873836 times.
8025279 if (it != end(tr) && it->first == k) it->second = v;
20
1/2
✓ Branch 2 taken 5873836 times.
✗ Branch 3 not taken.
5873836 else tr.insert({k, v});
21 }
22 }
23 20 return 0;
24 20 }
25