#include "vision.h"
using namespace std;
void construct_network(int H, int W, int K) {
vector<int> Ns;
int totalDiagnols = H + W - 1;
// printf("Total Diagonals: %d\n", totalDiagnols);
vector <vector<int>> diagonals(totalDiagnols), crossDiagonals(totalDiagnols);
for (int i = 0; i < H; i++) {
for (int j = 0; j < W; j++) {
diagonals[i + j].push_back(i * W + j);
crossDiagonals[H - 1 - i + j].push_back(i * W + j);
}
}
vector<int> diagXorIndices, crossDiagXorsIndices;
for (int d = 0; d < totalDiagnols; d++) {
// printf("Diagonal %d: ", d);
// for (int idx : diagonals[d]) {
// printf("%d ", idx);
// }
// printf("\n");
diagXorIndices.push_back(add_xor(diagonals[d]));
}
for (int d = 0; d < totalDiagnols; d++) {
// printf("Cross Diagonal %d: ", d);
// for (int idx : crossDiagonals[d]) {
// printf("%d ", idx);
// }
// printf("\n");
crossDiagXorsIndices.push_back(add_xor(crossDiagonals[d]));
}
vector<int> answers;
for (int i = 0;i < totalDiagnols - K;i++) {
answers.push_back(add_and({ diagXorIndices[i], diagXorIndices[i + K] }));
answers.push_back(add_and({ crossDiagXorsIndices[i], crossDiagXorsIndices[i + K] }));
}
add_or(answers);
}
| # | 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... |