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: 66.7% 24 / 0 / 36

test/cpv_local/lalg/basis_r.bzoj4004.cpp
Line Branch Exec Source
1 // competitive-verifier: LOCALCASE test/cpv_local/_data/bzoj/4004
2
3 #include "../../../src/lalg/basis/r/lib.hpp"
4
5 using namespace tifa_libs;
6 using std::cin, std::cout;
7 struct Node {
8 vec<double> v;
9 int w;
10
11
2/2
✓ Branch 0 taken 224 times.
✓ Branch 1 taken 17908 times.
18132 friend bool operator<(const Node& lhs, const Node& rhs) { retif_((lhs.w == rhs.w), lhs.v < rhs.v, lhs.w < rhs.w); }
12 };
13
14 10 int main() {
15 10 set_eps(1e-4);
16 10 vec<Node> a;
17 u32 n, m;
18
2/4
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
10 cin >> n >> m;
19 10 basis_r<double> rbs(m);
20
1/2
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
10 a.resize(n);
21
2/2
✓ Branch 5 taken 1780 times.
✓ Branch 6 taken 10 times.
1790 for (auto& [v, w] : a) {
22
1/2
✓ Branch 1 taken 1780 times.
✗ Branch 2 not taken.
1780 v.resize(m);
23
3/4
✓ Branch 4 taken 771056 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 771056 times.
✓ Branch 9 taken 1780 times.
772836 for (auto& j : v) cin >> j;
24 }
25
3/4
✓ Branch 4 taken 1780 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 1780 times.
✓ Branch 9 taken 10 times.
1790 for (auto& [v, w] : a) cin >> w;
26
1/2
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
10 std::sort(begin(a), end(a));
27 10 int cnt = 0, ans = 0;
28
2/2
✓ Branch 5 taken 1780 times.
✓ Branch 6 taken 10 times.
1790 for (auto&& [v, w] : a) {
29
3/4
✓ Branch 1 taken 1780 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1313 times.
✓ Branch 6 taken 467 times.
1780 if (rbs.insert(v)) {
30 1313 ++cnt;
31 1313 ans += w;
32 }
33 }
34
4/8
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
10 cout << cnt << ' ' << ans << '\n';
35 10 }
36