#include <bits/stdc++.h>
#include "vision.h"
using namespace std;
using int_t = int64_t;
bool is_in_range(int_t x, int_t y, int_t h, int_t w) {
    return (0 <= x && x < h && 0 <= y && y < w);
}
void construct_network(int h, int w, int k) {
    vector<int> final_instruction;
    if (k == 1) {
        vector<int> rows(h);
        for (int_t i = 0; i < h; i++) {
            vector<int> current_instruction(w);
            for (int_t j = 0; j < w; j++) {
                current_instruction[j] = w * i + j;
            }
            rows[i] = add_or(current_instruction);
        }
        vector<int> columns(w);
        for (int_t j = 0; j < w; j++) {
            vector<int> current_instruction(h);
            for (int_t i = 0; i < h; i++) {
                current_instruction[i] = w * i + j;
            }
            columns[j] = add_or(current_instruction);
        }
        vector<int> adjacent_rows(h - 1);
        for (int_t i = 0; i < h - 1; i++) {
            adjacent_rows[i] = add_and({rows[i], rows[i + 1]});
        }
        vector<int> adjacent_columns(w - 1);
        for (int_t i = 0; i < w - 1; i++) {
            adjacent_columns[i] = add_and({columns[i], columns[i + 1]});
        }
        int any_adjacent_on = add_or({add_or(adjacent_rows), add_or(adjacent_columns)});
        int odd_rows = add_xor(rows);
        int odd_columns = add_xor(columns);
        int only_one_odd_ro_co(add_xor({odd_rows, odd_columns}));
        add_and({any_adjacent_on, only_one_odd_ro_co});
        return;
    }
    for (int i = 0; i < h; i++) {
        for (int j = 0; j < w; j++) {
            for (int x = 0; x <= k; x++) {
                if (is_in_range(i + x, j + (k - x), h, w)) {
                    final_instruction.push_back(add_and({w * i + j, w * (i + x) + (j + (k - x))}));
                }
                if (is_in_range(i - x, j + (k - x), h, w)) {
                    final_instruction.push_back(add_and({w * i + j, w * (i - x) + (j + (k - x))}));
                }
            }
            if (max(h, w) > 10 && min(h, w) != 1) {
                add_or(final_instruction);
                return;
            }
        }
    }
    add_or(final_instruction);
}
| # | 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... |