#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
void construct_network(int H, int W, int K) {
    vector<int> d1, d2;
    int x=H-1, y=0;
    vector<int> vh1, vh2;
    while(y<W) {
        vector<int> vec;
        for(int i=x, j=y; i<H && j<W; i++, j++)
            vec.push_back(i*W+j);
        d1.push_back(add_or(vec));
        vh1.push_back(add_xor({d1.back(), add_xor(vec)}));
        x==0 ? (y++) : (x--);
    }
    x=0, y=0;
    while(x<H) {
        vector<int> vec;
        for(int i=x, j=y; i<H && j>=0; i++, j--)
            vec.push_back(i*W+j);
        d2.push_back(add_or(vec));
        vh2.push_back(add_xor({d2.back(), add_xor(vec)}));
        y==W-1 ? (x++) : (y++);
    }
    int h1=add_or(vh1), h2=add_or(vh2);
    vector<int> vals1 = {h1}, vals2 = {h2};
    for(int i=0; i+K-1<d1.size(); i++) {
        vector<int> vec;
        for(int j=i; j<=i+K-1; j++)
            vec.push_back(d1[j]);
        vals1.push_back(add_xor({add_or(vec), add_xor(vec)}));
    }
    for(int i=0; i+K-1<d2.size(); i++) {
        vector<int> vec;
        for(int j=i; j<=i+K-1; j++)
            vec.push_back(d2[j]);
        vals2.push_back(add_xor({add_or(vec), add_xor(vec)}));
    }
    int tmp1 = add_or(vals1), tmp2 = add_or(vals2);
    int val1 = add_xor({add_or({tmp1, tmp2}), add_xor({tmp1, tmp2})});
    vals1 = {h1}, vals2 = {h2};
    for(int i=0; i+K<d1.size(); i++) {
        vector<int> vec;
        for(int j=i; j<=i+K; j++)
            vec.push_back(d1[j]);
        vals1.push_back(add_xor({add_or(vec), add_xor(vec)}));
    }
    for(int i=0; i+K<d2.size(); i++) {
        vector<int> vec;
        for(int j=i; j<=i+K; j++)
            vec.push_back(d2[j]);
        vals2.push_back(add_xor({add_or(vec), add_xor(vec)}));
    }
    tmp1 = add_or(vals1), tmp2 = add_or(vals2);
    int val2 = add_xor({add_or({tmp1, tmp2}), add_xor({tmp1, tmp2})});
    add_and({add_not(val1), val2});
}
| # | 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... |