Submission #1195886

#TimeUsernameProblemLanguageResultExecution timeMemory
1195886sheina906Awesome Arrowland Adventure (eJOI19_adventure)C++20
16 / 100
0 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define f first #define s second unordered_map<char, unordered_map<char, int>> cost; int main() { cost['N']['N'] = cost['E']['E'] = cost['S']['S'] = cost['W']['W'] = 0; cost['N']['E'] = cost['E']['S'] = cost['S']['W'] = cost['W']['N'] = 1; cost['N']['S'] = cost['E']['W'] = cost['S']['N'] = cost['W']['E'] = 2; cost['N']['W'] = cost['E']['N'] = cost['S']['E'] = cost['W']['S'] = 3; cost['X']['N'] = cost['X']['E'] = cost['X']['S'] = cost['X']['W'] = 10000000; int n, m; cin >> n >> m; vector<string> v(n); for (string &s : v) cin >> s; vector<vector<int>> dp(n, vector<int> (m, 100000)); dp[0][0] = 0; dp[1][0] = cost[v[0][0]]['S']; for (int i = 1; i < m; i++) { dp[0][i] = min(dp[0][i-1] + cost[v[0][i-1]]['E'], dp[1][i-1] + cost[v[1][i-1]]['E'] + cost[v[1][i]]['N']); dp[1][i] = min(dp[1][i-1] + cost[v[1][i-1]]['E'], dp[0][i-1] + cost[v[0][i-1]]['E'] + cost[v[0][i]]['S']); } cout << (dp[n-1][m-1] >= 10000 ? -1 : dp[n-1][m-1]) << '\n'; return 0; } // int main() // { // int n, m, k; cin >> n >> m; // vector<string> g(n); // for (string &s : g) cin >> s; // vector<vector<vector<int>>> dp(n, vector<vector<int>> (m, vector<int> (k))); // }
#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...