제출 #1071197

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

#define pii pair<int,int>
#define fs first
#define sc second

int H,W,K;

int encode(int r,int c){
	return r*W+c;
}
pii decode(int k){
	return pii(k/W,k%W);
}


void construct_network(int HH, int WW, int KK) {
	set<pii> st;
	H = HH,W = WW,K = KK;
	int ans = add_xor({0,0});
	if(max(H,W)>30){
		for(int i = 0;i<H;i++){
			for(int j = 0;j<W;j++){
				if(i+j == K){
					ans = add_or({ans,encode(i,j)});
				}
			}
		}
		return;
	}
	for(int r1 = 0;r1<H;r1++){
		for(int c1 = 0;c1<W;c1++){
			for(int r2 = 0;r2<H;r2++){
				for(int c2 = 0;c2<W;c2++){
					if(abs(r1-r2)+abs(c1-c2) == K){
						pii p = pii(encode(r1,c1),encode(r2,c2));
						if(p.fs>p.sc)swap(p.fs,p.sc);
						if(st.find(p) != st.end())continue;
						st.insert(p);
						int tmp = add_and({encode(r1,c1),encode(r2,c2)});
						ans = add_or({ans,tmp});
					}
				}
			}
		}
	}
	return;
}
#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...