diff options
| author | Syndamia <kamen@syndamia.com> | 2024-01-05 15:29:15 +0200 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2024-01-05 15:29:15 +0200 |
| commit | 1f1bba9cbb7c9924da7aa25de46596c11bd6f202 (patch) | |
| tree | 4624f83c40f0de28c965f2e2923d9ca479bec9b0 /week12/ex2.cpp | |
| parent | 7e7c710287f25b9c958c9026b18f88587174d47f (diff) | |
| download | upp-2023-solutions-1f1bba9cbb7c9924da7aa25de46596c11bd6f202.tar upp-2023-solutions-1f1bba9cbb7c9924da7aa25de46596c11bd6f202.tar.gz upp-2023-solutions-1f1bba9cbb7c9924da7aa25de46596c11bd6f202.zip | |
[w12] Added solutions
Diffstat (limited to 'week12/ex2.cpp')
| -rw-r--r-- | week12/ex2.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/week12/ex2.cpp b/week12/ex2.cpp new file mode 100644 index 0000000..e123ed3 --- /dev/null +++ b/week12/ex2.cpp @@ -0,0 +1,45 @@ +#include <iostream> + +void floodFill(int row, int col, char** board, int rows, int cols) { + if (row < 0 || row >= rows || col < 0 || col >= cols || board[row][col] == '#') + return; + + board[row][col] = '#'; + floodFill(row+1, col, board, rows, cols); // up + floodFill(row-1, col, board, rows, cols); // down + floodFill(row, col+1, board, rows, cols); // right + floodFill(row, col-1, board, rows, cols); // left +} + +int main() { + int N, M; + std::cin >> N >> M; + + char** board = new char*[N]; + for (int i = 0; i < N; i++) { + board[i] = new char[M]; + } + + for (int i = 0; i < N; i++) { + for (int j = 0; j < M; j++) { + std::cin >> board[i][j]; + } + } + + int X, Y; + std::cin >> X >> Y; + + floodFill(X, Y, board, N, M); + + for (int i = 0; i < N; i++) { + for (int j = 0; j < M; j++) { + std::cout << board[i][j] << " "; + } + std::cout << std::endl; + } + + for (int i = 0; i < N; i++) { + delete[] board[i]; + } + delete[] board; +} |
