GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 25 / 0 / 25
Functions: 100.0% 2 / 0 / 2
Branches: 73.3% 22 / 0 / 30

test/cpv/library-checker-datastructure/segment_add_get_min.cpp
Line Branch Exec Source
1 // competitive-verifier: PROBLEM https://judge.yosupo.jp/problem/segment_add_get_min
2 #include "../../../src/ds/segtree/lichao/lib.hpp"
3 #include "../../../src/edh/discretization/lib.hpp"
4 #include "../../../src/io/fastin/lib.hpp"
5 #include "../../../src/io/fastout/lib.hpp"
6
7 using namespace tifa_libs;
8 96024964 i64 op(i64 x, i64 y) { return std::min(x, y); }
9
10 13 int main() {
11 u32 n, q;
12 13 fin_uint >> n >> q;
13 13 vecii lsh;
14 struct seg {
15 i64 a, b, l, r;
16 };
17
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
26 vec<seg> se(n);
18 struct que {
19 usz opt;
20 i64 pos;
21 seg k;
22 };
23
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 vec<que> qu(q);
24
2/2
✓ Branch 0 taken 1531788 times.
✓ Branch 1 taken 13 times.
1531801 flt_ (u32, i, 0, n)
25
2/4
✓ Branch 11 taken 1531788 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 1531788 times.
✗ Branch 16 not taken.
1531788 fin_int >> se[i].l >> se[i].r >> se[i].a >> se[i].b, se[i].r -= 1, lsh.push_back(se[i].l), lsh.push_back(se[i].r);
26
2/2
✓ Branch 0 taken 1617761 times.
✓ Branch 1 taken 13 times.
1617774 flt_ (u32, i, 0, q) {
27 1617761 fin_uint >> qu[i].opt;
28
2/2
✓ Branch 1 taken 709127 times.
✓ Branch 2 taken 908634 times.
1617761 if (qu[i].opt)
29
1/2
✓ Branch 4 taken 709127 times.
✗ Branch 5 not taken.
709127 fin_int >> qu[i].pos, lsh.push_back(qu[i].pos);
30 else
31
2/4
✓ Branch 11 taken 908634 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 908634 times.
✗ Branch 16 not taken.
908634 fin_int >> qu[i].k.l >> qu[i].k.r >> qu[i].k.a >> qu[i].k.b, qu[i].k.r -= 1, lsh.push_back(qu[i].k.l), lsh.push_back(qu[i].k.r);
32 }
33
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 lsh = uniq<vecii>(lsh);
34 13 lichao_segtree<i64, op> tr(lsh);
35
2/2
✓ Branch 0 taken 1531788 times.
✓ Branch 1 taken 13 times.
1531801 flt_ (u32, i, 0, n)
36 1531788 tr.add(se[i].a, se[i].b, se[i].l, se[i].r);
37
2/2
✓ Branch 0 taken 1617761 times.
✓ Branch 1 taken 13 times.
1617774 flt_ (u32, i, 0, q)
38
2/2
✓ Branch 1 taken 709127 times.
✓ Branch 2 taken 908634 times.
1617761 if (qu[i].opt) {
39 709127 i64 ret = tr.query(qu[i].pos);
40
2/2
✓ Branch 0 taken 7 times.
✓ Branch 1 taken 709120 times.
709127 if (ret == INT64_MAX) fout << "INFINITY\n";
41 709120 else fout << ret << '\n';
42 } else
43 908634 tr.add(qu[i].k.a, qu[i].k.b, qu[i].k.l, qu[i].k.r);
44 13 return 0;
45 13 }
46