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 |