제출 #1324994

#제출 시각아이디문제언어결과실행 시간메모리
1324994herissonwowwNautilus (BOI19_nautilus)C++20
0 / 100
3 ms568 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int r, c, m; cin >> r >> c >> m;
    char grid[r+2][c+2];
    for(int i = 0; i < r+2; i++){
        for(int j = 0; j < c+2; j++){
            grid[i][j] = '#';
        }
    }
    bool noQuestions = true;
    for(int i = 1; i <= r; i++){
        for(int j = 1; j <= c; j++){
            cin>>grid[i][j];
        }
    }
    char message[m];
    for(int i = 0; i < m; i++){
        cin >> message[i];
        if(message[i]=='?')
            noQuestions = false;
    }
    if(r <= 100 && c <= 100 && noQuestions){
        set<pair<int,int>> finalPos;
        for(int i = 1; i <= r; i++){
            for(int j = 1; j <= c; j++){
                pair<int,int> curPos = {i,j};
                bool validPath = true;
                for(char c : message){
                    if(c=='N')
                        curPos = {curPos.first-1, curPos.second};
                    else if (c=='S')
                        curPos = {curPos.first+1, curPos.second};
                    else if (c=='W')
                        curPos = {curPos.first, curPos.second-1};
                    else
                        curPos = {curPos.first, curPos.second+1};
                    if(grid[curPos.first][curPos.second] == '#'){
                        validPath = false;
                        break;
                    }
                }
                if(validPath){
                    finalPos.insert(curPos);
                }
            }
        }
        cout << finalPos.size();
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...