From 96254947699986c59f0dc63d69fd4b76bd3ed43e Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 6 Jul 2026 19:08:08 +0200 Subject: Initial commit --- .../knight_moves_grid_3217.cpp | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 01_introductory_problems/knight_moves_grid_3217.cpp (limited to '01_introductory_problems/knight_moves_grid_3217.cpp') diff --git a/01_introductory_problems/knight_moves_grid_3217.cpp b/01_introductory_problems/knight_moves_grid_3217.cpp new file mode 100644 index 0000000..212e82c --- /dev/null +++ b/01_introductory_problems/knight_moves_grid_3217.cpp @@ -0,0 +1,40 @@ +#include +#include +#include +#include + +struct Node { + int i; + int j; + int d; +}; + +int main() { + int n; + std::cin >> n; + std::vector> a(n, std::vector(n, 1e7)); + std::queue q; + + q.push(Node{0, 0, 0}); + while (!q.empty()) { + auto v = q.front(); + q.pop(); + if (v.i < 0 || v.j < 0 || v.i >= n || v.j >= n || a[v.i][v.j] <= v.d) + continue; + a[v.i][v.j] = v.d; + q.push(Node{v.i-2, v.j-1, v.d+1}); + q.push(Node{v.i-2, v.j+1, v.d+1}); + q.push(Node{v.i-1, v.j-2, v.d+1}); + q.push(Node{v.i-1, v.j+2, v.d+1}); + q.push(Node{v.i+2, v.j-1, v.d+1}); + q.push(Node{v.i+2, v.j+1, v.d+1}); + q.push(Node{v.i+1, v.j-2, v.d+1}); + q.push(Node{v.i+1, v.j+2, v.d+1}); + } + + for (auto& v : a) { + for (auto& x : v) + std::cout << x << " "; + std::cout << "\n"; + } +} -- cgit v1.3