이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
// Author: Kajetan Ramsza
#include "vision.h"
#include "bits/stdc++.h"
using namespace std;
#define rep(i,a,b) for(int i=(a);i<(b);++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)x.size()
typedef vector<int> vi;
typedef pair<int,int> pii;
typedef long long ll;
#ifdef DEBUG
auto& operator<<(auto& os, const pair<auto, auto> &p);
auto& operator<<(auto &os, const auto &v) 
	{ os<<"{"; for(auto it=begin(v);it!=end(v);++it) {
		if(it != begin(v)) { os<<", "; } os<<(*it);
	} return os<<"}"; }
auto& operator<<(auto &os, const pair<auto, auto> &p) 
	{ return os<<"("<<p.first<<", "<<p.second<<")"; }
void dbg_out(auto... x) { ((cerr<<' '<<x), ...) << endl; }
#define dbg(x...) cerr<<"("<<#x<<"):", dbg_out(x)
#else
#define dbg(...)
#endif
int ind = 0;
vi distance_vector(int l, int r) {
	int n = r - l;
	vi res(n);
	for(int i=n-1;i>0;i--) {
		rep(j,0,n-i)
			add_and({l+j, l+j+i});
		vi indicies(n-i);
		iota(all(indicies), ind);
		ind += n-i;
		add_or(indicies);
		res[i] = ind++;
	}
	if(n > 1) {
		vi query(res.begin()+1, res.end());
		add_or(query); ind++;
		add_not(ind - 1);
		res[0] = ind++;
	} else res[0] = ind-1;
	dbg(res);
	return res;
}
void construct_network(int h, int w, int k) {
	dbg(h, w, k);
	ind += h * w;
	rep(i,0,h) {
		vi vec(w);
		rep(j,0,w) vec[j] = i*w + j;
		add_or(vec);
	}
	ind += h;
	vi x = distance_vector(ind-h, ind);
	rep(j,0,w) {
		vi vec(h);
		rep(i,0,h) vec[i] = i*w + j;
		add_or(vec);
	}
	ind += w;
	vi y = distance_vector(ind-w, ind);
	int l = max(0, k-w+1);
	int r = min(k+1, h);
	rep(i,l,r)
		add_and({x[i], y[k-i]});
	vi res(r-l);
	iota(all(res), ind);
	add_or(res);
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |