Submission #1000115

#TimeUsernameProblemLanguageResultExecution timeMemory
1000115vjudge1Awesome Arrowland Adventure (eJOI19_adventure)C++17
100 / 100
59 ms5320 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define f first #define s second #define pb push_back #define pf push_front #define vi vector<int> #define pi pair<int,int> #define pii pair<int,pi> const int MAX = 510; int g[MAX][MAX]; const int mod = 4; int dy[4]={1,0,-1,0}; int dx[4] ={0, 1,0,-1}; int dir[4] = {1,2,3,4}; int lmatch(char c){ if(c=='E') return 1; else if(c=='S') return 2; else if(c=='W') return 3; else if(c=='N')return 4; return 5; } int visited[MAX][MAX]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,m; cin >> n >> m; char c; for(int i = 1; i<= n; i++){ for(int j = 1; j<=m; j++){ cin >> c; g[i][j] =lmatch(c); } } priority_queue<pii, vector<pii>, greater<pii>>pq; pq.push({0,{1,1}}); int ncost =0; int ans = INT_MAX; if(g[1][1]==5){ cout << -1 << endl; return 0; } while(!pq.empty()){ int curx = pq.top().s.f; int cury = pq.top().s.s; int cost = pq.top().f; pq.pop(); if(visited[curx][cury])continue; visited[curx][cury]=1; if(curx == n && cury == m){ cout << cost << endl; return 0; } int tox, toy; for(int i = 0; i <4 ; i++){ tox = curx+dx[i], toy = cury+dy[i]; // cout << tox << " " << toy<< " " << curx << " ">> if(tox > n || toy >m|| tox <1|| toy < 1)continue; if(g[tox][toy]==5 && (tox!= n ||toy!=m)) continue; if(visited[tox][toy]) continue; ncost =((dir[i]- g[curx][cury])+mod)%mod; /// cout << dir[i] << " " << g[curx][cury]<< endl; pq.push({ncost+cost,{tox, toy}}); } } cout << -1<< endl; }

Compilation message (stderr)

adventure.cpp: In function 'int main()':
adventure.cpp:47:9: warning: unused variable 'ans' [-Wunused-variable]
   47 |     int ans = INT_MAX;
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...