Submission #1055030

# Submission time Handle Problem Language Result Execution time Memory
1055030 2024-08-12T14:08:39 Z ThommyDB Awesome Arrowland Adventure (eJOI19_adventure) C++17
0 / 100
1 ms 348 KB
#include<bits/stdc++.h>

using namespace std;

int m, n;
vector<vector<int>> grid;

vector<vector<int>> test;

int dfs(int x, int y, int turns){
    test[x][y]=min(test[x][y], turns);
    if(x==m-1 && y==n-1) return turns;
    if(grid[x][y]==-1)return 1e9;
    int dir = grid[x][y];
    int ans = 1e9;
    if(x!=0 && turns < test[x-1][y]) ans = min(ans, dfs(x-1, y, turns + (4>=dir?4-dir:4+4-dir))); // west
    if(x!=m-1 && turns < test[x+1][y]) ans = min(ans, dfs(x+1, y, turns + (2>=dir?2-dir:2+4-dir))); // east
    if(y!=0 && turns < test[x][y-1]) ans = min(ans, dfs(x, y-1, turns + (1>=dir?1-dir:1+4-dir))); // north
    if(y!=n-1 && turns < test[x][y+1]) ans = min(ans, dfs(x, y+1, turns + (3>=dir?3-dir:3+4-dir))); // south
    return ans;
}

signed main(){
    cin >> m >> n;
    grid.resize(m, vector<int>(n));
    test.resize(m, vector<int>(n, 1e9));
    for(int i = 0; i < m; i++){
        for(int j = 0; j < n; j++){
            char dir;
            cin >> dir;
            if(dir=='N') grid[j][i] = 1;
            else if(dir=='E') grid[j][i] = 2;
            else if(dir=='S') grid[j][i] = 3;
            else if(dir=='W') grid[j][i] = 4;
            else grid[j][i]=-1;
        }
    }
    int ans = dfs(0, 0, 0);
    if(ans==1e9){
        cout << "No\n";
    }
    else{
        cout << ans << "\n";
    }
}
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 348 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 348 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Incorrect 0 ms 348 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 0 ms 348 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 348 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -