GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 26 / 0 / 26
Functions: 100.0% 1 / 0 / 1
Branches: 63.6% 21 / 0 / 33

test/cpv_local/ds/rbtree.bzoj3224.cpp
Line Branch Exec Source
1 // competitive-verifier: LOCALCASE test/cpv_local/_data/bzoj/3224
2
3 #include "../../../src/ds/bst/rbt/lib.hpp"
4 #include "../../../src/ds/bt_trv/lib.hpp"
5
6 using namespace tifa_libs;
7 using std::cin, std::cout;
8 10 int main() {
9 u32 m;
10
1/2
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
10 cin >> m;
11 10 rbtree<int> bt;
12
13
2/2
✓ Branch 0 taken 361180 times.
✓ Branch 1 taken 10 times.
361190 for (u32 i = 0, opt; i < m; ++i) {
14 int x;
15
2/4
✓ Branch 1 taken 361180 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 361180 times.
✗ Branch 5 not taken.
361180 cin >> opt >> x;
16
6/7
✓ Branch 0 taken 181263 times.
✓ Branch 1 taken 36651 times.
✓ Branch 2 taken 35837 times.
✓ Branch 3 taken 36872 times.
✓ Branch 4 taken 35430 times.
✓ Branch 5 taken 35127 times.
✗ Branch 6 not taken.
361180 switch (opt) {
17 181263 case 1:
18 181263 bt.insert(x);
19 181263 break;
20 36651 case 2:
21 36651 bt.erase(x);
22 36651 break;
23 35837 case 3:
24
2/4
✓ Branch 2 taken 35837 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 35837 times.
✗ Branch 6 not taken.
35837 cout << int(bt.order_of_key(x) + 1) << '\n';
25 35837 break;
26 36872 case 4:
27
2/4
✓ Branch 2 taken 36872 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 36872 times.
✗ Branch 6 not taken.
36872 cout << bt.find_by_order((u32)x - 1)->data << '\n';
28 36872 break;
29 35430 case 5: {
30 35430 auto it = bt.lower_bound(x);
31
4/6
✓ Branch 0 taken 35238 times.
✓ Branch 1 taken 192 times.
✓ Branch 5 taken 35430 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 35430 times.
✗ Branch 9 not taken.
35430 cout << (it ? bt.prev(it) : rightmost(bt.root))->data << '\n';
32 35430 } break;
33 35127 case 6:
34
2/4
✓ Branch 2 taken 35127 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 35127 times.
✗ Branch 6 not taken.
35127 cout << bt.upper_bound(x)->data << '\n';
35 35127 break;
36 }
37 }
38 10 }
39