// Tiene un error a propósito: pinta la celda después de las llamadas, no antes.
#include <stdio.h>

#define ROWS 3
#define COLS 3

void fill(char grid[][COLS + 1], int row, int col) {
    if (row < 0 || row >= ROWS || col < 0 || col >= COLS) {
        return;
    }
    if (grid[row][col] != '.') {
        return;
    }
    fill(grid, row - 1, col);
    fill(grid, row + 1, col);
    fill(grid, row, col - 1);
    fill(grid, row, col + 1);
    grid[row][col] = 'o';
}

int main(void) {
    char grid[ROWS][COLS + 1] = {
        "...",
        ".#.",
        "...",
    };

    fill(grid, 0, 0);
    printf("%s\n%s\n%s\n", grid[0], grid[1], grid[2]);
    return 0;
}
