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% 1 / 0 / 1
Branches: 69.4% 25 / 0 / 36

test/cpv_local/ds/segbeats_ca_ms.bzoj4695.cpp
Line Branch Exec Source
1 // competitive-verifier: LOCALCASE test/cpv_local/_data/bzoj/4695
2
3 #include "../../../src/ds/segtree/segbeats_ca_ms/lib.hpp"
4
5 using namespace tifa_libs;
6 using std::cin, std::cout;
7 20 int main() {
8 u32 n;
9
1/2
✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
20 cin >> n;
10
1/2
✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
20 vecii a(n);
11
3/4
✓ Branch 4 taken 5926182 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 5926182 times.
✓ Branch 9 taken 20 times.
5926202 for (auto& i : a) cin >> i;
12 20 segbeats_ca_ms<i64> seg(a);
13 u32 q;
14
1/2
✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
20 cin >> q;
15
2/2
✓ Branch 0 taken 5997401 times.
✓ Branch 1 taken 20 times.
5997421 for (u32 i = 0, tp, l, r; i < q; ++i) {
16
3/6
✓ Branch 1 taken 5997401 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5997401 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5997401 times.
✗ Branch 8 not taken.
5997401 cin >> tp >> l >> r;
17
2/2
✓ Branch 0 taken 3867160 times.
✓ Branch 1 taken 2130241 times.
5997401 if (tp < 4) {
18 i64 x;
19
1/2
✓ Branch 1 taken 3867160 times.
✗ Branch 2 not taken.
3867160 cin >> x;
20
2/2
✓ Branch 0 taken 2108498 times.
✓ Branch 1 taken 1758662 times.
3867160 if (tp == 1) seg.add(l - 1, r, x);
21
2/2
✓ Branch 0 taken 878313 times.
✓ Branch 1 taken 880349 times.
1758662 else if (tp == 2) seg.chmax(l - 1, r, x);
22
1/2
✓ Branch 0 taken 880349 times.
✗ Branch 1 not taken.
880349 else if (tp == 3) seg.chmin(l - 1, r, x);
23 } else {
24 i64 got;
25
2/2
✓ Branch 0 taken 1067157 times.
✓ Branch 1 taken 1063084 times.
2130241 if (tp == 4) got = seg.query_sum(l - 1, r);
26
2/2
✓ Branch 0 taken 530342 times.
✓ Branch 1 taken 532742 times.
1063084 else if (tp == 5) got = seg.query_max(l - 1, r);
27 532742 else got = seg.query_min(l - 1, r);
28
2/4
✓ Branch 1 taken 2130241 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2130241 times.
✗ Branch 5 not taken.
2130241 cout << got << '\n';
29 }
30 }
31 20 }
32