제출 #1243193

#제출 시각아이디문제언어결과실행 시간메모리
1243193banganVision Program (IOI19_vision)C++20
0 / 100
6 ms1096 KiB
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;

#define pb push_back

#define MT make_tuple

void construct_network(int h, int w, int k) {
	auto f = [&](int r, int c) -> int {
		return r*w + c;
	};

	int n = h*w;
	for (int r=0; r<h; r++) {
		vector<int> vec;
		for (int c=0; c<w; c++) vec.pb(f(r, c));
		add_xor(vec); n++;
	}
	for (int c=0; c<w; c++) {
		vector<int> vec;
		for (int r=0; r<h; r++) vec.pb(f(r, c));
		add_xor(vec); n++;
	}

	vector<int> A, B;
	for (int i = h*w; i+1 < h*w+h; i++) {
		A.pb(add_and({i, i+1}));
		n++;
	}
	for (int i = h*w+h; i+1 < h*w+h+w; i++) {
		B.pb(add_and({i, i+1}));
		n++;
	}

	add_or(A); n++;
	add_or(B); n++;

	A.clear();
	B.clear();
	for (int i = h*w; i < h*w+h; i++) A.pb(i);
	for (int i = h*w+h; i < h*w+h+w; i++) B.pb(i);

	add_or(A); n++;
	add_or(B); n++;

	add_not({n-1});
	add_not({n-2});
	n += 2;

	add_and({n-1, n-5});
	add_and({n-2, n-6});
	n += 2;

	add_xor({n-1, n-2});
}
#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...