CP-Algorithms Library

This documentation is automatically generated by competitive-verifier/competitive-verifier

View the Project on GitHub cp-algorithms/cp-algorithms-aux

:heavy_check_mark: Inverse Matrix (Mod 2) (verify/structures/bitpack/inv_mod_2.test.cpp)

Depends on

Code

// @brief Inverse Matrix (Mod 2)
#define PROBLEM "https://judge.yosupo.jp/problem/inverse_matrix_mod_2"
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
#include "cp-algo/structures/bit_array_util.hpp"
#include <bits/stdc++.h>

using namespace std;
using namespace cp_algo::structures;

const int maxn = 1 << 12;
bit_array<2 * maxn> a[maxn];

void solve() {
    size_t n;
    cin >> n;
    cp_algo::big_string row;
    cp_algo::big_vector<size_t> lead(n);
    for(size_t i = 0; i < n; i++) {
        cin >> row;
        from_string(a[i], row);
        a[i].resize(2 * n);
        a[i].set(n + i);
        for(size_t j = 0; j < i; j++) {
            if(a[i][lead[j]]) {
                a[i].xor_hint(a[j], lead[j]);
            }
        }
        lead[i] = ctz(a[i]);
        if(lead[i] >= n) {
            cout << -1 << "\n";
            return;
        }
        for(size_t j = 0; j < i; j++) {
            if(a[j][lead[i]]) {
                a[j].xor_hint(a[i], lead[i]);
            }
        }
    }
    for(size_t i = 0; i < n; i++) {
        while(lead[i] != i) {
            swap(a[i], a[lead[i]]);
            swap(lead[i], lead[lead[i]]);
        }
        cout << to_string(a[i]).substr(n, n) << "\n";
    }
}

signed main() {
    //freopen("input.txt", "r", stdin);
    ios::sync_with_stdio(0);
    cin.tie(0);
    int t = 1;
    while(t--) {
        solve();
    }
}
Traceback (most recent call last):
  File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj_resolve/resolver.py", line 181, in resolve
    bundled_code = language.bundle(path, basedir=basedir)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj/verify/languages/cplusplus.py", line 252, in bundle
    bundler.update(path)
  File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj/verify/languages/cplusplus_bundle.py", line 327, in update
    assert len(lines) == len(uncommented_lines)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

Test cases

Env Name Status Elapsed Memory
g++ example_00 :heavy_check_mark: AC 4 ms 4 MB
g++ example_01 :heavy_check_mark: AC 4 ms 4 MB
g++ example_02 :heavy_check_mark: AC 4 ms 4 MB
g++ lowrank_max_random_00 :heavy_check_mark: AC 4 ms 4 MB
g++ lowrank_max_random_01 :heavy_check_mark: AC 4 ms 4 MB
g++ lowrank_max_random_02 :heavy_check_mark: AC 4 ms 4 MB
g++ lowrank_max_random_03 :heavy_check_mark: AC 583 ms 8 MB
g++ lowrank_max_random_04 :heavy_check_mark: AC 581 ms 8 MB
g++ lowrank_max_random_05 :heavy_check_mark: AC 545 ms 8 MB
g++ lowrank_max_random_06 :heavy_check_mark: AC 171 ms 6 MB
g++ lowrank_max_random_07 :heavy_check_mark: AC 385 ms 7 MB
g++ max_fullrank_00 :heavy_check_mark: AC 595 ms 8 MB
g++ max_fullrank_01 :heavy_check_mark: AC 595 ms 8 MB
g++ max_fullrank_02 :heavy_check_mark: AC 598 ms 8 MB
g++ max_fullrank_03 :heavy_check_mark: AC 602 ms 8 MB
g++ max_random_00 :heavy_check_mark: AC 583 ms 8 MB
g++ max_random_01 :heavy_check_mark: AC 596 ms 8 MB
g++ max_random_02 :heavy_check_mark: AC 580 ms 8 MB
g++ max_random_03 :heavy_check_mark: AC 586 ms 8 MB
g++ perm_max_random_00 :heavy_check_mark: AC 4 ms 4 MB
g++ perm_max_random_01 :heavy_check_mark: AC 4 ms 4 MB
g++ random_00 :heavy_check_mark: AC 10 ms 4 MB
g++ random_01 :heavy_check_mark: AC 4 ms 4 MB
g++ random_02 :heavy_check_mark: AC 4 ms 4 MB
g++ random_03 :heavy_check_mark: AC 325 ms 7 MB
g++ random_fullrank_00 :heavy_check_mark: AC 11 ms 4 MB
g++ random_fullrank_01 :heavy_check_mark: AC 4 ms 4 MB
g++ random_fullrank_02 :heavy_check_mark: AC 4 ms 4 MB
g++ random_fullrank_03 :heavy_check_mark: AC 334 ms 7 MB
g++ small_random_00 :heavy_check_mark: AC 4 ms 4 MB
g++ small_random_01 :heavy_check_mark: AC 4 ms 4 MB
g++ small_random_02 :heavy_check_mark: AC 4 ms 4 MB
g++ small_random_03 :heavy_check_mark: AC 4 ms 4 MB
g++ small_random_04 :heavy_check_mark: AC 4 ms 4 MB
g++ small_random_05 :heavy_check_mark: AC 4 ms 4 MB
g++ small_random_06 :heavy_check_mark: AC 4 ms 4 MB
g++ small_random_07 :heavy_check_mark: AC 4 ms 4 MB
Back to top page