Submission #868965

#TimeUsernameProblemLanguageResultExecution timeMemory
868965n1kVision Program (IOI19_vision)C++17
8 / 100
0 ms440 KiB
#include "vision.h"
#include <bits/stdc++.h>

using namespace std;

int h, w, k;

bool inb(int r, int c){
	return 0 <= r && r < h && 0 <= c && c < w;
}

void construct_network(int H, int W, int K) {
	h = H, w = W, k = K;
	vector<vector<int>> ands;
	for(int r = 0; r < H; r++){
		for(int c = 0; c < W; c++){
			if(r != 0 || c != 0) continue;
			vector<int> v;
			for(int rr = r, cc = c + K; cc >= c; rr++, cc--){
				if(inb(rr, cc)){
					v.push_back(rr * w + cc);
				}
			}
			for(int rr = r - K, cc = c; rr < r; rr++, cc++){
				if(inb(rr, cc)){
					v.push_back(rr * w + cc);
				}
			}
			for(int rr = r, cc = c - K; cc < c; rr++, cc++){
				if(inb(rr, cc)){
					v.push_back(rr * w + cc);
				}
			}
			if(v.size())
				ands.push_back({r * w + c, add_or(v)});
		}
	}
	vector<int> ors;
	for(auto v : ands){
		ors.push_back(add_and(v));
	}
	add_or(ors);
}
#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...