Submission #1233797

#TimeUsernameProblemLanguageResultExecution timeMemory
1233797gry3125Vision Program (IOI19_vision)C++20
26 / 100
5 ms1096 KiB
#include "vision.h"

using namespace std;

void construct_network(int h, int w, int k) {
	if (min(h, w) == 1) {
		vector<int> a;
		for (int i = 0; i < h; i++) {
			for (int j = 0; j < w; j++) {
				for (int i2 = 0; i2 < h; i2++) {
					for (int j2 = 0; j2 < w; j2++) {
						if (abs(i-i2)+abs(j-j2) == k) {
							int val = add_and({i*w+j, i2*w+j2});
							a.push_back(val);
						}
					}
				}
			}
		}
		int val = add_or(a);
		return;
	}
	vector<int> r, c;
	for (int i = 0; i < h; i++) {
		vector<int> v;
		for (int j = 0; j < w; j++) {
			v.push_back(i*w+j);
		}
		int val = add_or(v);
		r.push_back(val);
	}
	for (int j = 0; j < w; j++) {
		vector<int> v;
		for (int i = 0; i < h; i++) {
			v.push_back(i*w+j);
		}
		int val = add_or(v);
		c.push_back(val);
	}
	vector<int> ra, ca;
	for (int i = 0; i + 1 < r.size(); i++) {
		int val = add_and({r[i], r[i+1]});
		ra.push_back(val);
	}
	for (int i = 0; i + 1 < c.size(); i++) {
		int val = add_and({c[i], c[i+1]});
		ca.push_back(val);
	}
	int ro = add_or(ra), co = add_or(ca);
	int rx = add_xor(r), cx = add_xor(c);
	int val1 = add_and({ro, cx});
	int val2 = add_and({co, rx});
	int val = add_or({val1, val2});
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...