#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
const int LOG=9;
int N, M, P;
int ans[LOG];
void sum() {
int S=P, T;
for (int i=0;i<LOG;i++) {
T=add_and({S,ans[i]});
ans[i]=add_xor({S,ans[i]});
S=T;
}
}
void row(int x) {
vector <int> V={P};
for (int i=0;i<M;i++) {
V.push_back(x*M+i);
}
P=add_xor(V);
sum();
}
void col(int x) {
vector <int> V={P};
for (int i=0;i<N;i++) {
V.push_back(i*M+x);
}
P=add_xor(V);
sum();
}
void build(int H,int W) {
N=H;
M=W;
P=add_and({0,add_not(0)});
for (int i=0;i<LOG;i++) {
ans[i]=P;
}
}
void prefix() {
for (int i=0;i<N;i++) {
row(i);
}
for (int i=0;i<M;i++) {
col(i);
}
}
void equal(int K) {
int S=P;
for (int i=0;i<LOG;i++) {
if ((K>>i)&1) {
ans[i]=add_not(ans[i]);
}
S=add_or({S,ans[i]});
}
add_not(S);
}
void construct_network(int H,int W,int K) {
build(H,W);
prefix();
equal(K);
}
# | 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... |