test/cpv_local/nt/period_fib.cpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // competitive-verifier: STANDALONE | ||
| 2 | |||
| 3 | #include "../../../src/lalg/ds/mat/lib.hpp" | ||
| 4 | #include "../../../src/math/ds/mint/md/lib.hpp" | ||
| 5 | #include "../../../src/math/qpow/basic/lib.hpp" | ||
| 6 | #include "../../../src/nt/period_fib/lib.hpp" | ||
| 7 | #include "../base.hpp" | ||
| 8 | |||
| 9 | using namespace tifa_libs; | ||
| 10 | template <class mint> | ||
| 11 | 5 | void test(u32 n) { | |
| 12 | 5 | mint::set_mod(n); | |
| 13 |
3/6✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
|
5 | timer_(u64 period = period_fib(n)); |
| 14 | 5 | matrix<mint> a(2, 2), b(2, 1), i(2, 2); | |
| 15 | 5 | a(0, 1) = a(1, 0) = a(1, 1) = 1; | |
| 16 | 5 | b(1, 0) = 1; | |
| 17 | 5 | i(0, 0) = i(1, 1) = 1; | |
| 18 |
1/2✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
|
5 | a = qpow(a, period, i); |
| 19 |
4/8✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 14 taken 5 times.
✗ Branch 15 not taken.
|
5 | check(a * b, b, check_param(n), check_param(period), check_param(a)); |
| 20 | 5 | } | |
| 21 | |||
| 22 | using mint = mint_md<__LINE__>; | ||
| 23 | |||
| 24 | 1 | int main() { | |
| 25 |
3/6✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
|
1 | timer_(test<mint>(2)); |
| 26 |
3/6✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
|
1 | timer_(test<mint>(10)); |
| 27 |
3/6✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
|
1 | timer_(test<mint>(5000)); |
| 28 |
3/6✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
|
1 | timer_(test<mint>(1919810)); |
| 29 |
3/6✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
|
1 | timer_(test<mint>(1'000'000'000)); |
| 30 | 1 | } | |
| 31 |