test/cpv/aizu-itp2/itp2_10_d.dbitset.cpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // competitive-verifier: PROBLEM https://onlinejudge.u-aizu.ac.jp/courses/lesson/8/ITP2/all/ITP2_10_D | ||
| 2 | #include "../../../src/ds/dbitset/lib.hpp" | ||
| 3 | |||
| 4 | using namespace tifa_libs; | ||
| 5 | 10 | int main() { | |
| 6 |
1/2✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
|
10 | std::cin.tie(nullptr)->std::ios::sync_with_stdio(false); |
| 7 | u32 n; | ||
| 8 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | std::cin >> n; |
| 9 |
1/2✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
|
10 | vec<dbitset> masks(n, dbitset(64)); |
| 10 |
2/2✓ Branch 5 taken 61 times.
✓ Branch 6 taken 10 times.
|
71 | for (auto& m : masks) { |
| 11 | u32 k; | ||
| 12 |
1/2✓ Branch 1 taken 61 times.
✗ Branch 2 not taken.
|
61 | std::cin >> k; |
| 13 |
2/2✓ Branch 0 taken 660 times.
✓ Branch 1 taken 61 times.
|
721 | flt_ (u32, i, 0, k, x) { |
| 14 |
1/2✓ Branch 1 taken 660 times.
✗ Branch 2 not taken.
|
660 | std::cin >> x; |
| 15 | 660 | m.set(x); | |
| 16 | } | ||
| 17 | } | ||
| 18 | u32 q; | ||
| 19 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | std::cin >> q; |
| 20 | 10 | dbitset bs(64); | |
| 21 |
2/2✓ Branch 0 taken 342477 times.
✓ Branch 1 taken 10 times.
|
342487 | while (q--) { |
| 22 | u32 op, i; | ||
| 23 |
2/4✓ Branch 1 taken 342477 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 342477 times.
✗ Branch 5 not taken.
|
342477 | std::cin >> op >> i; |
| 24 |
9/10✓ Branch 0 taken 89827 times.
✓ Branch 1 taken 628 times.
✓ Branch 2 taken 363 times.
✓ Branch 3 taken 361 times.
✓ Branch 4 taken 10262 times.
✓ Branch 5 taken 10259 times.
✓ Branch 6 taken 10263 times.
✓ Branch 7 taken 210246 times.
✓ Branch 8 taken 10268 times.
✗ Branch 9 not taken.
|
342477 | switch (op) { |
| 25 |
2/4✓ Branch 2 taken 89827 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 89827 times.
✗ Branch 6 not taken.
|
89827 | case 0: std::cout << bs[i] << '\n'; break; |
| 26 | 628 | case 1: bs |= masks[i]; break; | |
| 27 | 363 | case 2: bs &= ~masks[i]; break; | |
| 28 | 361 | case 3: bs ^= masks[i]; break; | |
| 29 |
2/4✓ Branch 5 taken 10262 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 10262 times.
✗ Branch 9 not taken.
|
10262 | case 4: std::cout << ((bs & masks[i]) == masks[i]) << '\n'; break; |
| 30 |
2/4✓ Branch 4 taken 10259 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10259 times.
✗ Branch 8 not taken.
|
10259 | case 5: std::cout << (bs & masks[i]).any() << '\n'; break; |
| 31 |
2/4✓ Branch 4 taken 10263 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10263 times.
✗ Branch 8 not taken.
|
10263 | case 6: std::cout << (bs & masks[i]).none() << '\n'; break; |
| 32 |
2/4✓ Branch 4 taken 210246 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 210246 times.
✗ Branch 8 not taken.
|
210246 | case 7: std::cout << (bs & masks[i]).count() << '\n'; break; |
| 33 |
2/4✓ Branch 4 taken 10268 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10268 times.
✗ Branch 8 not taken.
|
10268 | case 8: std::cout << (bs & masks[i]).to_u64() << '\n'; break; |
| 34 | } | ||
| 35 | } | ||
| 36 | 10 | return 0; | |
| 37 | 10 | } | |
| 38 |