#include <bits/stdc++.h>
#include "vision.h"
using namespace std;
using int_t = int64_t;
bool is_in_range(int_t x, int_t y, int_t h, int_t w) {
return (0 <= x && x < h && 0 <= y && y < w);
}
void construct_network(int h, int w, int k) {
vector<int> final_instruction;
if (k == 1) {
vector<int> rows(h);
for (int_t i = 0; i < h; i++) {
vector<int> current_instruction(w);
for (int_t j = 0; j < w; j++) {
current_instruction[j] = w * i + j;
}
rows[i] = add_or(current_instruction);
}
vector<int> columns(w);
for (int_t j = 0; j < w; j++) {
vector<int> current_instruction(h);
for (int_t i = 0; i < h; i++) {
current_instruction[i] = w * i + j;
}
columns[j] = add_or(current_instruction);
}
vector<int> adjacent_rows(h - 1);
for (int_t i = 0; i < h - 1; i++) {
adjacent_rows[i] = add_and({rows[i], rows[i + 1]});
}
vector<int> adjacent_columns(w - 1);
for (int_t i = 0; i < w - 1; i++) {
adjacent_columns[i] = add_and({columns[i], columns[i + 1]});
}
vector<int> rows_plus_columns;
for (int row : rows) rows_plus_columns.push_back(row);
for (int column : columns) rows_plus_columns.push_back(column);
int any_adjacent_on = add_or(rows_plus_columns);
int odd_rows = add_xor(rows);
int odd_columns = add_xor(columns);
int only_one_odd_ro_co(add_xor({odd_rows, odd_columns}));
add_and({any_adjacent_on, only_one_odd_ro_co});
return;
}
for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
for (int x = 0; x <= k; x++) {
if (is_in_range(i + x, j + (k - x), h, w)) {
final_instruction.push_back(add_and({w * i + j, w * (i + x) + (j + (k - x))}));
}
if (is_in_range(i - x, j + (k - x), h, w)) {
final_instruction.push_back(add_and({w * i + j, w * (i - x) + (j + (k - x))}));
}
}
if (max(h, w) > 10 && min(h, w) != 1) {
add_or(final_instruction);
return;
}
}
}
add_or(final_instruction);
}
# | 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... |