Submission #1246876

#TimeUsernameProblemLanguageResultExecution timeMemory
1246876gunnsteinnVision Program (IOI19_vision)C++20
0 / 100
5 ms1096 KiB
#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]}); } int any_adjacent_on = add_or({add_or(adjacent_rows), add_or(adjacent_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 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...