#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
void construct_network(int H, int W, int K) {
	if ( H * W <= 900) {
		int id = H*W-1;
		vector<int > finid;
		for (int i = 0; i < H; i++) {
			for (int j = 0; j < W; j++) {
				vector<int> v1;
				for (int i2 = 0; i2 < H; i2++) for (int j2 = 0; j2 < W; j2++) {
					if (abs(i2-i) + abs(j2-j) == K) v1.push_back(i2*W+j2);
				}
				if (v1.empty()) continue;
				add_or(v1); id++;
				add_and({id, i*W+j});id++;
				finid.push_back(id);
			}
		}
		add_or(finid);
		return;
	}
	vector<int> prime = {17, 31,  41,  127, 227, 391};
	vector<int> chp;
	for (int p : prime) {
		if (K % p) {
			chp.push_back(p);
		}
	}
// 29 17 51 89
	int id = H*W-1;
	vector<int> chpid;
	for (int p : chp) {
		vector<int> rs[400], rs2[400];
		for (int i = 0; i < H; i++) {
			for (int j = 0; j < W; j++) {
				rs[(i+j) % p] . push_back(i*W + j);
				rs2[((i-j)%p+p)%p]. push_back(i*W + j);
			}
		}
		int r = K % p;
		vector<int> ids;
		for (int t = 0; t < 2; t++) {
			for (int r1 = 0; r1 < p; r1++) {
				int r2 = (r1 + r) %p, r3 = 399;
				// if (r2 >= p) continue;
				if (rs[r1].empty() or (rs[r2].empty() and rs[r3].empty())) continue;
				auto tmp = rs[r2];
				tmp.insert(tmp.end(), rs[r3].begin(), rs[r3].end());
				add_or(rs[r1]); id++;
				add_or(tmp); id++;
				add_and({id-1, id});id++;
				ids.push_back(id);
			}
			swap(rs, rs2);
		}
		if (ids.empty()) continue;
		add_or(ids); id++;
		chpid.push_back(id);
	}
	// cout << id << '\n';
	add_and(chpid);
}
| # | 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... |