This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 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... |