This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
void construct_network(int H, int W, int K) {
//debug(H, W, K);
int rows = H * W;
for (int i = 0; i < H; ++i) {
vector<int> ask(W);
for (int j = 0; j < W; ++j) {
ask[j] = i * W + j;
}
add_or(ask);
}
int cols = H * W + H;
for (int j = 0; j < W; ++j) {
vector<int> ask(H);
for (int i = 0; i < H; ++i) {
ask[i] = i * W + j;
}
add_or(ask);
}
auto Add_zero = [&] {
return add_xor({0, 0});
};
const int BITS = __lg(H + W + 2) + 1;
vector<int> sum(BITS);
for (int i = 0; i < BITS; ++i) {
sum[i] = Add_zero();
}
auto Solve = [&](int start, int N) {
vector<int> ask;
vector<int> prefs;
for (int i = 0; i < N; ++i) {
ask.push_back(start + i);
prefs.push_back(add_xor(ask));
}
int not_zero = add_not(prefs.back());
for (int i = 0; i < N; ++i) {
int carry = add_and({not_zero, prefs[i]});
for (int b = 0; b < BITS; ++b) {
int new_carry = add_and({sum[b], carry});
sum[b] = add_xor({sum[b], carry});
swap(carry, new_carry);
}
}
};
Solve(rows, H);
Solve(cols, W);
vector<int> K_bits(BITS);
int zero = Add_zero();
int one = add_not(zero);
int ans = Add_zero();
for (int b = 0; b < BITS; ++b) {
ans = add_or({ans, add_xor({((K >> b) % 2 ? one : zero), sum[b]})});
}
add_not(ans);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |