Submission #1194034

#TimeUsernameProblemLanguageResultExecution timeMemory
1194034nagorn_phNautilus (BOI19_nautilus)C++20
66 / 100
156 ms327680 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define ordered_set <int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> #define ordered_multiset <int, null_type, less_equal <int>, rb_tree_tag, tree_order_statistics_node_update> #define int long long #define double long double #define pii pair <int, int> #define tiii tuple <int, int, int> #define tiiii tuple <int, int, int, int> #define emb emplace_back #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() #define iShowSpeed cin.tie(NULL)->sync_with_stdio(false) #define matrix vector <vector <int>> #define mat(n, m) vector <vector <int>> (n, vector <int> (m)); const int mod = 1e9 + 7; const int inf = 1e18; const matrix II = {{1, 0}, {0, 1}}; int dx[] = {0, 1, 0, -1}; int dy[] = {1, 0, -1, 0}; int32_t main(){ iShowSpeed; int n, m, l; cin >> n >> m >> l; int a[n + 1][m + 1]; memset(a, 0, sizeof a); bool dp[l + 1][n + 1][m + 1]; memset(dp, 0, sizeof dp); for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { char c; cin >> c; a[i][j] = (c == '#'); dp[0][i][j] = 1 - a[i][j]; } } string s; cin >> s; s = ' ' + s; for (int k = 1; k <= l; k++) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (a[i][j]) continue; if (s[k] == 'N' || s[k] == '?') dp[k][i][j] |= dp[k - 1][i + 1][j]; if (s[k] == 'S' || s[k] == '?') dp[k][i][j] |= dp[k - 1][i - 1][j]; if (s[k] == 'E' || s[k] == '?') dp[k][i][j] |= dp[k - 1][i][j - 1]; if (s[k] == 'W' || s[k] == '?') dp[k][i][j] |= dp[k - 1][i][j + 1]; } } } int ans = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { ans += dp[l][i][j]; } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...