Submission #1021862

#TimeUsernameProblemLanguageResultExecution timeMemory
1021862basaNautilus (BOI19_nautilus)C++14
66 / 100
383 ms262144 KiB
#include <bits/stdc++.h> using namespace std; #define int long long string m; int r, c, k; string s[605]; bool vis[605][605][5005]; int dfs(int i, int j, int p){ if(i >= r || i < 0) return 0; if(j >= c || j < 0) return 0; if(s[i][j] == '#') return 0; if(vis[i][j][p]) return 0; vis[i][j][p] = 1; if(p == (int)m.size()) return 1; int ret = 0; if(m[p] == 'N') ret = dfs(i - 1, j, p + 1); if(m[p] == 'S') ret = dfs(i + 1, j, p + 1); if(m[p] == 'E') ret = dfs(i, j + 1, p + 1); if(m[p] == 'W') ret = dfs(i, j - 1, p + 1); if(m[p] == '?'){ ret += dfs(i + 1, j, p + 1); ret += dfs(i - 1, j, p + 1); ret += dfs(i, j + 1, p + 1); ret += dfs(i, j - 1, p + 1); } return ret; } signed main() { cin.tie(0) -> sync_with_stdio(0); cin >> r >> c >> k; for(int i = 0; i < r; i++) cin >> s[i]; cin >> m; int ans = 0; for(int i = 0; i < r; i++){ for(int j = 0; j < c; j++){ if(s[i][j] == '#') continue; ans += dfs(i, j, 0); } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...