GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 19 / 0 / 19
Functions: 100.0% 2 / 0 / 2
Branches: 75.0% 18 / 0 / 24

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