Submission #1048284

#TimeUsernameProblemLanguageResultExecution timeMemory
1048284mychecksedadVision Program (IOI19_vision)C++17
26 / 100
6 ms1240 KiB
#include "vision.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define pb push_back
#define vi vector<int>
 
int n, m;
int last;
vector<int> D;
int c(int x, int y){
	return x * m + y;
}
void construct_network(int H, int W, int K) {
	n = H, m = W;
	last = n*m;
	if(K > 1){
		// cout << "gg";
		vector<int> rows;
		for(int i = 0; i < n; ++i){
			vector<int> L;
			for(int j = 0; j < m; ++j) L.pb(c(i, j));
			rows.pb(add_or(L));
		}
		vector<int> cols;
		for(int j = 0; j < m; ++j){
			vector<int> L;
			for(int i = 0; i < n; ++i) L.pb(c(i, j));
			cols.pb(add_or(L));
		}

		vector<int> L;
		for(int difrow = 0; difrow <= K; ++difrow){
			int difcol = K - difrow;
			for(int i = 0; i + difrow < n; ++i){
				for(int j = 0; j + difcol < m; ++j){
					// cout << i << ' ' << j << '\n';
					L.pb(add_and({rows[i], cols[j], rows[i + difrow], cols[j + difcol]}));
				}
			}
		}
		add_or(L);
	}else{
		vector<int> rows;
		for(int i = 0; i < n; ++i){
			vector<int> L;
			for(int j = 0; j < m; ++j) L.pb(c(i, j));
			rows.pb(add_or(L));
		}
		vector<int> cols;
		for(int j = 0; j < m; ++j){
			vector<int> L;
			for(int i = 0; i < n; ++i) L.pb(c(i, j));
			cols.pb(add_or(L));
		}

		int xo1 = add_xor(rows);
		int xo2 = add_xor(cols);
		int xo3 = add_xor({xo1, xo2});

		vector<int> L;

		for(int j = 0; j + 1 < n; ++j){
			L.pb(add_and({rows[j], rows[j + 1]}));
		}
		for(int j = 0; j + 1 < m; ++j){
			L.pb(add_and({cols[j], cols[j + 1]}));
		}
		int last = add_or(L);
		add_and({last, xo3});
	}
}
#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...