走丢的小信WA 0

#include<bits/stdc++.h>

using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    vector<vector<char>> city(n, vector<char>(m));
    int startX, startY;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cin >> city[i][j];
            if (city[i][j] == '*') {
                startX = i;
                startY = j;
            }
        }
    }
    int q;
    cin >> q;
    vector<string> signals(q);
    for (int i = 0; i < q; i++) {
        cin >> signals[i];
    }
    vector<vector<int>> dirs = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
    vector<vector<bool>> possible(n, vector<bool>(m, true));
    possible[startX][startY] = false;
    for (int i = 0; i < q; i++) {
        int dir;
        if (signals[i] == "EAST") {
            dir = 0;
        } else if (signals[i] == "SOUTH") {
            dir = 1;
        } else if (signals[i] == "WEST") {
            dir = 2;
        } else if (signals[i] == "NORTH") {
            dir = 3;
        }
        startX += dirs[dir][0];
        startY += dirs[dir][1];
        if (startX >= 0 && startX < n && startY >= 0 && startY < m) {
            possible[startX][startY] = false;
        }
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (city[i][j] == 'X') {
                cout << 'X';
            } else if (possible[i][j]) {
                cout << '*';
            } else {
                cout << '.';
            }
        }
        cout << endl;
    }
    return 0;
}

2 个赞

题目id告诉我一下呗

1 个赞

note.ms/pjbw
在这个前面加*****://

1 个赞

求题目 id

1 个赞
5.  走丢的小信
XJOI - 题目ID:9722必做题100分
最新提交:
Accepted
100 分
历史最高:
Accepted
100 分
时间限制: 1000ms
空间限制: 262144kB
题目描述
时间:1s 空间:256M
题目描述:
小信出门帮妈妈买菜,不小心迷路了。小信身上带着定位装置,但是装置只显示小信行动的方向,每当小信朝着与原先方向不同的方向走了一步时,定位装置会发出信号。也就是说小信至少会朝着定位装置发出信号的方向走一步。

现在妈妈收到了装置发出的 
�
q 个信号,信号是东(EAST),南(SOUTH),西(WEST),北(NORTH)中的一种,妈妈想知道小信可能在哪些位置。

输入格式:
第一行包含两个整数 
�
n ,
�
m,表示城市的地图大小。

接下来 
�
n 行 
�
m 列的地图,'.' 表示空地,'X'表示建筑物,'*'表示小信出发的位置,保证输入只有一个'*'。

接下来一行包含一个整数 
�
q,表示妈妈收到的信号个数。

接下来 
�
q 行,每行一个字符串,是东南西北中的一种。保证任意两个连续的信号不会相同。

输出格式:
输出初始地图,字符 '*' 仅用来表示小信最终可能出现的位置。



样例1输入:
4 5
.....
.X...
...*X
X.X..
3
NORTH
WEST
SOUTH
样例1输出:
.....
*X*..
*.*.X
X.X..


约定与提示:
对于100%的数据,
1
≤
�
,
�
≤
50
1≤n,m≤50, 
1
≤
�
≤
1000
1≤q≤1000

数据保证合法,也就是说不会出现像下面这种:小信完全不能动,但是还有信号发出的情况。

错误的数据:
3 3

.X.

X*X

.X.

1

NORTH
1 个赞