#include <iostream>
#include <vector>
#include <string>
using namespace std;
void printMaze(const vector<string>& maze, int r, int c, int step) {
cout << "===== Step " << step << " | Position (" << r << "," << c << ") =====\n";
for (auto &row : maze) cout << row << "\n";
cout << "\n";
}
int main() {
vector<string> maze = {
"##########",
"#@.......#",
"#.######.#",
"#......#.#",
"###.##.#.#",
"#...#....#",
"#.#.###..#",
"#.#.....##",
"#.#.E....#",
"##########"
};
int r = 1, c = 1; // start position
int er = 8, ec = 3; // exit position
string moves;
cin >> moves; // <-- WPROWADZASZ STEROWANIE JAKO TEKST, np: SSSDDWWAAS
int step = 0;
printMaze(maze, r, c, step);
for (char key : moves) {
int nr = r, nc = c;
if (key == 'w' || key == 'W') nr--;
else if (key == 's' || key == 'S') nr++;
else if (key == 'a' || key == 'A') nc--;
else if (key == 'd' || key == 'D') nc++;
else continue; // ignoruj inne znaki
// blokada o ścianę
if (maze[nr][nc] == '#')
continue;
// ruch
maze[r][c] = '.';
r = nr;
c = nc;
maze[r][c] = '@';
step++;
printMaze(maze, r, c, step);
// sprawdzenie wyjścia
if (r == er && c == ec) {
cout << "BRAWO!\n";
return 0;
}
}
cout << "SPROBUJ JESZCZE RAZ\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBwcmludE1hemUoY29uc3QgdmVjdG9yPHN0cmluZz4mIG1hemUsIGludCByLCBpbnQgYywgaW50IHN0ZXApIHsKICAgIGNvdXQgPDwgIj09PT09IFN0ZXAgIiA8PCBzdGVwIDw8ICIgfCBQb3NpdGlvbiAoIiA8PCByIDw8ICIsIiA8PCBjIDw8ICIpID09PT09XG4iOwogICAgZm9yIChhdXRvICZyb3cgOiBtYXplKSBjb3V0IDw8IHJvdyA8PCAiXG4iOwogICAgY291dCA8PCAiXG4iOwp9CgppbnQgbWFpbigpIHsKICAgIHZlY3RvcjxzdHJpbmc+IG1hemUgPSB7CiAgICAgICAgIiMjIyMjIyMjIyMiLAogICAgICAgICIjQC4uLi4uLi4jIiwKICAgICAgICAiIy4jIyMjIyMuIyIsCiAgICAgICAgIiMuLi4uLi4jLiMiLAogICAgICAgICIjIyMuIyMuIy4jIiwKICAgICAgICAiIy4uLiMuLi4uIyIsCiAgICAgICAgIiMuIy4jIyMuLiMiLAogICAgICAgICIjLiMuLi4uLiMjIiwKICAgICAgICAiIy4jLkUuLi4uIyIsCiAgICAgICAgIiMjIyMjIyMjIyMiCiAgICB9OwoKICAgIGludCByID0gMSwgYyA9IDE7ICAgLy8gc3RhcnQgcG9zaXRpb24KICAgIGludCBlciA9IDgsIGVjID0gMzsgLy8gZXhpdCBwb3NpdGlvbgoKICAgIHN0cmluZyBtb3ZlczsKICAgIGNpbiA+PiBtb3ZlczsgICAvLyA8LS0gV1BST1dBRFpBU1ogU1RFUk9XQU5JRSBKQUtPIFRFS1NULCBucDogIFNTU0REV1dBQVMKCiAgICBpbnQgc3RlcCA9IDA7CiAgICBwcmludE1hemUobWF6ZSwgciwgYywgc3RlcCk7CgogICAgZm9yIChjaGFyIGtleSA6IG1vdmVzKSB7CiAgICAgICAgaW50IG5yID0gciwgbmMgPSBjOwoKICAgICAgICBpZiAoa2V5ID09ICd3JyB8fCBrZXkgPT0gJ1cnKSBuci0tOwogICAgICAgIGVsc2UgaWYgKGtleSA9PSAncycgfHwga2V5ID09ICdTJykgbnIrKzsKICAgICAgICBlbHNlIGlmIChrZXkgPT0gJ2EnIHx8IGtleSA9PSAnQScpIG5jLS07CiAgICAgICAgZWxzZSBpZiAoa2V5ID09ICdkJyB8fCBrZXkgPT0gJ0QnKSBuYysrOwogICAgICAgIGVsc2UgY29udGludWU7IC8vIGlnbm9ydWogaW5uZSB6bmFraQoKICAgICAgICAvLyBibG9rYWRhIG8gxZtjaWFuxJkKICAgICAgICBpZiAobWF6ZVtucl1bbmNdID09ICcjJykKICAgICAgICAgICAgY29udGludWU7CgogICAgICAgIC8vIHJ1Y2gKICAgICAgICBtYXplW3JdW2NdID0gJy4nOwogICAgICAgIHIgPSBucjsgCiAgICAgICAgYyA9IG5jOwogICAgICAgIG1hemVbcl1bY10gPSAnQCc7CiAgICAgICAgc3RlcCsrOwoKICAgICAgICBwcmludE1hemUobWF6ZSwgciwgYywgc3RlcCk7CgogICAgICAgIC8vIHNwcmF3ZHplbmllIHd5asWbY2lhCiAgICAgICAgaWYgKHIgPT0gZXIgJiYgYyA9PSBlYykgewogICAgICAgICAgICBjb3V0IDw8ICJCUkFXTyFcbiI7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8ICJTUFJPQlVKIEpFU1pDWkUgUkFaXG4iOwogICAgcmV0dXJuIDA7Cn0K