답안 #750200

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
750200 2023-05-29T07:44:53 Z Jassar Awesome Arrowland Adventure (eJOI19_adventure) C++17
34 / 100
2000 ms 340 KB
#include <bits/stdc++.h>
#define ll long long
#define endl '\n'
#define f first
#define s second
using namespace std;

int a[505][505];
int n,m;
bool vis[505][505];

bool valid (int x , int y)
{
    if (0 > x || 0 > y || x >= n || y >= m || a[x][y] == -1 || vis[x][y] == 1)
        return 0;
    return 1;
}

int ans = INT_MAX;
void dfs (int x , int y, int cur)
{
    if (x == n - 1 && y == m - 1)
    {
        ans = min(ans , cur);
        return ;
    }
    if (!valid(x , y))
        return ;
    vis[x][y] = 1;
    int i = x , j = y;
    int u;
    if (a[i][j] == 3) u = 3;
    else if (a[i][j] == 2) u = 2;
    else if (a[i][j] == 1) u = 1;
    else u = 0;
    dfs(x , y - 1 , cur + u);
    if (a[i][j] == 2) u = 3;
    else if (a[i][j] == 1) u = 2;
    else if (a[i][j] == 0) u = 1;
    else u = 0;
    dfs(x - 1 , y , cur + u);
    if (a[i][j] == 1) u = 3;
    else if (a[i][j] == 0) u = 2;
    else if (a[i][j] == 3) u = 1;
    else u = 0;
    dfs(x , y + 1 , cur + u);
    if (a[i][j] == 0) u = 3;
    else if (a[i][j] == 3) u = 2;
    else if (a[i][j] == 2) u = 1;
    else u = 0;
    dfs(x + 1 , y , cur + u);
    vis[x][y] = 0;
}

int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> n >> m;
    for (int i=0; n>i; i++)
    {
        string y;
        cin >> y;
        for (int j=0; m>j; j++)
        {
            if (y[j] == 'W')
                a[i][j] = 0;
            else if (y[j] == 'N')
                a[i][j] = 3;
            else if (y[j] == 'E')
                a[i][j] = 2;
            else if (y[j] == 'S')
                a[i][j] = 1;
            else
                a[i][j] = -1;
        }
    }
    dfs(0 , 0 , 0);
    if (ans == INT_MAX)
        cout << -1 << endl;
    else
        cout << ans << endl;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 296 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 340 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 296 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 340 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 340 KB Output is correct
13 Correct 0 ms 340 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 340 KB Output is correct
17 Correct 0 ms 340 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 0 ms 340 KB Output is correct
20 Correct 0 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Execution timed out 2039 ms 212 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 296 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 340 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 340 KB Output is correct
13 Correct 0 ms 340 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 340 KB Output is correct
17 Correct 0 ms 340 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 0 ms 340 KB Output is correct
20 Correct 0 ms 340 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 0 ms 212 KB Output is correct
23 Correct 0 ms 212 KB Output is correct
24 Correct 1 ms 336 KB Output is correct
25 Correct 0 ms 212 KB Output is correct
26 Execution timed out 2039 ms 212 KB Time limit exceeded
27 Halted 0 ms 0 KB -