#include <bits/stdc++.h>
using namespace std;
#include "vision.h"
void construct_network(int h,int w,int n){
if (h*w==2){
add_or({0});
return;
}
int zero = add_and({0,1,2});
int one = add_not(zero);
for (int i(0);i < 18;++i) add_or({zero});
int b = one+1,c = one+18;
for (int i(0);i < h;++i){
vector<int> I = {c};
for (int k(0);k < w;++k) I.emplace_back(i*w+k);
c = add_xor(I);
int t = c;
for (int k(0);k < 9;++k,b+=2) add_xor({b,c}),c = add_and({b,c});
b = c-17,c = t;
}
for (int i(0);i < w;++i){
vector<int> I = {c};
for (int k(0);k < h;++k) I.emplace_back(k*w+i);
c = add_xor(I);
int t = c;
for (int k(0);k < 9;++k,b+=2) add_xor({b,c}),c = add_and({b,c});
b = c-17,c = t;
}
vector<int> R;
for (int i(0);i < 9;++i,b+=2) R.emplace_back((n>>i)&1?add_and({b,one}):add_xor({b,one}));
add_and(R);
}
| # | 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... |