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;
void construct_network(int H, int W, int K) {
int cur = (H - 1) * W + W - 1;
vector<int> v;
map<int, bool> vis;
map<pair<int, int>, bool> dp;
for (int i = 0; i < H; i++) {
for (int j = 0; j < W; j++) {
for (int x = 0; x <= K; x++) {
int y = K - x;
for (int ys : {-y, y}) {
int dx = i + x;
int dy = j + ys;
if (dx >= 0 && dx < H && dy >= 0 && dy < W) {
int xx = i * W + j;
int yy = dx * W + dy;
if (vis.count(yy) || dp.count({xx, yy})) {
continue;
}
dp[{xx, yy}] = dp[{yy, xx}] = true;
add_and({xx, yy});
++cur;
v.push_back(cur);
}
}
}
vis[i * W + j] = true;
}
}
if (!v.empty())
add_or(v);
}
# | 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... |