답안 #760792

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
760792 2023-06-18T13:00:48 Z bachhoangxuan Awesome Arrowland Adventure (eJOI19_adventure) C++17
100 / 100
51 ms 5716 KB
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define piii pair<int,pii>
#define fi first
#define se second 
#define maxn 505
int n,m,d[maxn][maxn],dist[maxn][maxn];
int dx[]={-1,0,1,0},
    dy[]={0,1,0,-1};
signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cin >> n >> m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            char c;cin >> c;dist[i][j]=INT_MAX;
            if(c=='N') d[i][j]=0;
            else if(c=='E') d[i][j]=1;
            else if(c=='S') d[i][j]=2;
            else if(c=='W') d[i][j]=3;
            else d[i][j]=-1;
        }
    }
    priority_queue<piii,vector<piii>,greater<piii>> pq;
    dist[1][1]=0;
    pq.push({0,{1,1}});
    while(!pq.empty()){
        int x=pq.top().se.fi,y=pq.top().se.se,len=pq.top().fi;pq.pop();
        if(dist[x][y]!=len) continue;
        if(x==n && y==m){
            cout << len << '\n';
            return 0;
        }
        if(d[x][y]==-1) continue;
        for(int t=0;t<4;t++){
            int add=(4+t-d[x][y])%4,xt=x+dx[t],yt=y+dy[t];
            if(yt<=0 || xt<=0 || xt>n || yt>m) continue;
            if(add+len<dist[xt][yt]){
                dist[xt][yt]=add+len;
                pq.push({add+len,{xt,yt}});
            }
        }
    }
    cout << -1 << '\n';
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 328 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 328 KB Output is correct
9 Correct 1 ms 324 KB Output is correct
10 Correct 1 ms 328 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 328 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 328 KB Output is correct
9 Correct 1 ms 324 KB Output is correct
10 Correct 1 ms 328 KB Output is correct
11 Correct 1 ms 328 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 0 ms 332 KB Output is correct
15 Correct 1 ms 340 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 1 ms 412 KB Output is correct
19 Correct 0 ms 340 KB Output is correct
20 Correct 1 ms 328 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 464 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 324 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 328 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 328 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 328 KB Output is correct
9 Correct 1 ms 324 KB Output is correct
10 Correct 1 ms 328 KB Output is correct
11 Correct 1 ms 328 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 0 ms 332 KB Output is correct
15 Correct 1 ms 340 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 1 ms 412 KB Output is correct
19 Correct 0 ms 340 KB Output is correct
20 Correct 1 ms 328 KB Output is correct
21 Correct 0 ms 340 KB Output is correct
22 Correct 1 ms 464 KB Output is correct
23 Correct 0 ms 340 KB Output is correct
24 Correct 0 ms 324 KB Output is correct
25 Correct 1 ms 212 KB Output is correct
26 Correct 1 ms 212 KB Output is correct
27 Correct 1 ms 328 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
29 Correct 1 ms 212 KB Output is correct
30 Correct 1 ms 340 KB Output is correct
31 Correct 1 ms 212 KB Output is correct
32 Correct 1 ms 340 KB Output is correct
33 Correct 1 ms 212 KB Output is correct
34 Correct 1 ms 340 KB Output is correct
35 Correct 4 ms 468 KB Output is correct
36 Correct 1 ms 324 KB Output is correct
37 Correct 5 ms 724 KB Output is correct
38 Correct 1 ms 1364 KB Output is correct
39 Correct 50 ms 2568 KB Output is correct
40 Correct 51 ms 2576 KB Output is correct
41 Correct 6 ms 2516 KB Output is correct
42 Correct 46 ms 2568 KB Output is correct
43 Correct 43 ms 5716 KB Output is correct
44 Correct 6 ms 2512 KB Output is correct