Submission #1221720

#TimeUsernameProblemLanguageResultExecution timeMemory
1221720VMaksimoski008Vision Program (IOI19_vision)C++20
14 / 100
5 ms1352 KiB
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;

int id[205][205], c = 0;

void construct_network(int n, int m, int k) {
	for(int i=0; i<n; i++)
		for(int j=0; j<m; j++)
			id[i][j] = c++;

	//k = 1
	//(1) ili ist red ili ista kolona
	vector<int> row;
	for(int i=0; i<n; i++) {
		vector<int> v;
		for(int j=0; j<m; j++) v.push_back(id[i][j]);
		row.push_back(add_or(v));
	}

	vector<int> col;
	for(int j=0; j<m; j++) {
		vector<int> v;
		for(int i=0; i<n; i++) v.push_back(id[i][j]);
		col.push_back(add_or(v));
	}

	int row_x = add_xor(row), col_x = add_xor(col);
	int c1 = add_xor({ row_x, col_x });
	
	if(n == 1) {
		vector<int> vec;
		for(int i=0; i+1<m; i++) vec.push_back(add_and({ col[i], col[i+1] }));
		add_or(vec);
		return ;
	}

	if(m == 1) {
		vector<int> vec;
		for(int i=0; i+1<n; i++) vec.push_back(add_and({ row[i], row[i+1] }));
		add_or(vec);
		return ;
	}

	vector<int> hor, ver;
	for(int i=0; i+1<n; i++) hor.push_back(add_and({ row[i], row[i+1] }));
	for(int i=0; i+1<m; i++) ver.push_back(add_and({ col[i], col[i+1] }));

	add_and({ c1, add_xor({ add_or(hor), add_or(ver) }) });
}
#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...