#include<bits/stdc++.h>
using namespace std;
#include"vision.h"
void construct_network(int H, int W, int K){
vector<int> row_xors,col_xors;
for (int i=0;i<H;i++){
vector<int> row;
for (int j=0;j<W;j++){
row.push_back(i*W+j);
}
row_xors.push_back(add_xor(row));
}
for (int j=0;j<W;j++){
vector<int> col;
for (int i=0;i<H;i++){
col.push_back(i*W+j);
}
col_xors.push_back(add_xor(col));
}
vector<int> row_adj, col_adj;
for (int i=0;i<H-1;i++){
row_adj.push_back(add_and({row_xors[i],row_xors[i+1]}));
}
for (int i=0;i<W-1;i++){
col_adj.push_back(add_and({col_xors[i],col_xors[i+1]}));
}
int a = add_or(row_xors);
int an = add_not(a);
int b = add_or(col_xors);
int bn = add_not(b);
if (row_adj.size() == 0){
int d = add_or(col_adj);
int e = add_and({an,d});
} else if (col_adj.size() == 0){
int c = add_or(row_adj);
int f = add_and({bn,c});
} else {
int c = add_or(row_adj);
int d = add_or(col_adj);
int e = add_and({an,d});
int f = add_and({bn,c});
int g = add_or({e,f});
}
}
# | 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... |