test/cpv_local/nt/lsieve2.bzoj4804.cpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // competitive-verifier: LOCALCASE test/cpv_local/_data/bzoj/4804 | ||
| 2 | |||
| 3 | #include "../../../src/nt/lsieve/impl2/lib.hpp" | ||
| 4 | |||
| 5 | using namespace tifa_libs; | ||
| 6 | using std::cin, std::cout; | ||
| 7 | |||
| 8 | 5 | int main() { | |
| 9 | u32 t; | ||
| 10 |
1/2✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
|
5 | cin >> t; |
| 11 |
1/2✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
|
5 | vecu ns(t); |
| 12 |
3/4✓ Branch 2 taken 6102 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6102 times.
✓ Branch 5 taken 5 times.
|
6107 | flt_ (u32, i, 0, t) cin >> ns[i]; |
| 13 | |||
| 14 | 5 | u32 n = std::ranges::max(ns); | |
| 15 | 5 | lsieve2 ls(n); | |
| 16 | 5 | u64 lst = 1; | |
| 17 | 1399083 | vecuu g = ls.template run<u64>([&](u32 p, u32 e) { | |
| 18 |
2/2✓ Branch 0 taken 1397723 times.
✓ Branch 1 taken 1360 times.
|
1399083 | if (e == 1) return lst = p - 2; |
| 19 |
2/2✓ Branch 0 taken 1061 times.
✓ Branch 1 taken 299 times.
|
1360 | else if (e == 2) return lst = u64(p - 1) * (p - 1); |
| 20 | 299 | else return lst *= p; | |
| 21 | 5 | }); | |
| 22 |
1/2✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
|
5 | vecuu f(n + 1); |
| 23 |
2/2✓ Branch 3 taken 20861426 times.
✓ Branch 4 taken 5 times.
|
20861431 | flt_ (u32, i, 1, n + 1) f[i] = f[i - 1] + g[i]; |
| 24 | |||
| 25 |
2/2✓ Branch 5 taken 6102 times.
✓ Branch 6 taken 5 times.
|
6107 | for (u32 n : ns) { |
| 26 | 6102 | u64 ans = 0; | |
| 27 |
2/2✓ Branch 2 taken 35029455 times.
✓ Branch 3 taken 6102 times.
|
35035557 | for (u32 l = 1, r, d; l <= n; l = r + 1) r = n / (d = n / l), ans += (f[r] - f[l - 1]) * d * d; |
| 28 |
2/4✓ Branch 1 taken 6102 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 6102 times.
✗ Branch 5 not taken.
|
6102 | cout << ans << '\n'; |
| 29 | } | ||
| 30 | 5 | } | |
| 31 |