This documentation is automatically generated by competitive-verifier/competitive-verifier
// @brief Matrix Product (Mod 2)
#define PROBLEM "https://judge.yosupo.jp/problem/matrix_product_mod_2"
#pragma GCC optimize("O3,unroll-loops")
#define CP_ALGO_CHECKPOINT
#pragma GCC target("avx2")
#include "cp-algo/structures/bit_array_util.hpp"
#include "cp-algo/util/checkpoint.hpp"
#include <bits/stdc++.h>
using namespace std;
using namespace cp_algo::structures;
const int maxn = 1 << 12;
const size_t K = 8;
using bitpack = cp_algo::structures::bit_array<maxn>;
bitpack a[maxn], b[maxn], c[maxn];
bitpack precalc[1 << K];
void process_precalc(int i) {
for(size_t j = 0; j < K; j++) {
int step = 1 << j;
for(int k = 0; k < step; k++) {
precalc[k + step] = precalc[k] ^ b[i + j];
}
}
}
void solve() {
int n, m, k;
cin >> n >> m >> k;
cp_algo::checkpoint("init");
cp_algo::big_string row;
for(int i = 0; i < n; i++) {
cin >> row;
from_string(a[i], row);
}
for(int i = 0; i < m; i++) {
cin >> row;
from_string(b[i], row);
}
for(auto &it: c) {
it.resize(k);
}
for(auto &it: precalc) {
it.resize(k);
}
cp_algo::checkpoint("read");
const int width = bitpack::width;
for(int j = 0; j < m; j += width) {
for(int offset = 0; offset < width; offset += K) {
process_precalc(j + offset);
for(int i = 0; i < n; i++) {
c[i] ^= precalc[uint8_t(a[i].word(j / width) >> offset)];
}
}
}
cp_algo::checkpoint("mul");
for(int i = 0; i < n; i++) {
cout << to_string(c[i]) << "\n";
}
cp_algo::checkpoint("write");
cp_algo::checkpoint<1>();
}
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
| Env | Name | Status | Elapsed | Memory |
|---|---|---|---|---|
| g++ | example_00 |
|
7 ms | 6 MB |
| g++ | example_01 |
|
7 ms | 6 MB |
| g++ | example_02 |
|
6 ms | 6 MB |
| g++ | many_1_00 |
|
181 ms | 11 MB |
| g++ | many_1_01 |
|
176 ms | 11 MB |
| g++ | max_random_00 |
|
189 ms | 11 MB |
| g++ | max_random_01 |
|
188 ms | 11 MB |
| g++ | max_random_02 |
|
187 ms | 11 MB |
| g++ | middle_00 |
|
10 ms | 7 MB |
| g++ | middle_01 |
|
7 ms | 7 MB |
| g++ | middle_02 |
|
8 ms | 7 MB |
| g++ | middle_03 |
|
7 ms | 7 MB |
| g++ | middle_04 |
|
12 ms | 7 MB |
| g++ | random_00 |
|
119 ms | 10 MB |
| g++ | random_01 |
|
92 ms | 9 MB |
| g++ | random_02 |
|
85 ms | 9 MB |
| g++ | small_00 |
|
7 ms | 6 MB |
| g++ | small_01 |
|
7 ms | 6 MB |
| g++ | small_02 |
|
6 ms | 6 MB |
| g++ | small_03 |
|
7 ms | 6 MB |
| g++ | small_04 |
|
7 ms | 6 MB |
| g++ | small_05 |
|
7 ms | 6 MB |
| g++ | small_06 |
|
7 ms | 6 MB |
| g++ | small_07 |
|
7 ms | 6 MB |
| g++ | small_08 |
|
7 ms | 6 MB |
| g++ | small_09 |
|
7 ms | 6 MB |