제출 #1228901

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

#define pb push_back

bool check(int h, int w, int k){//is dist>k
	vector<vector<int> > pos(h+w-1), neg(h+w-1);
	for (int i=0; i<h; ++i)for (int j=0; j<w; ++j)pos[i-j+w-1].pb(i*w+j), neg[i+j].pb(i*w+j);
	vector<int> ans, a, b, aa, bb;
	for (int i=0; i<=h+w-2; ++i){
		a.pb(add_xor(pos[i]));
		aa.pb(add_xor(a));
		b.pb(add_xor(neg[i]));
		bb.pb(add_xor(b));
	}
	for (int i=k; i<=h+w-2; ++i)ans.pb(add_and({a[i], aa[i-k]})), ans.pb(add_and({b[i], bb[i-k]}));
	return add_or(ans);
}

void construct_network(int h, int w, int k){
	if (k<h+w-2)add_xor({check(h, w, k), check(h, w, k+1)});
	else add_xor({check(h, w, k)});
}
#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...