Submission #202657

#TimeUsernameProblemLanguageResultExecution timeMemory
202657stefdascaNautilus (BOI19_nautilus)C++14
66 / 100
1098 ms155896 KiB
#include<bits/stdc++.h> #define god dimasi5eks #pragma GCC optimize("O3") #define fi first #define se second #define pb push_back #define pf push_front #define mod 1000000007 #define dancila 3.14159265359 #define eps 1e-9 // #define fisier 1 using namespace std; typedef long long ll; int n, m, k; string s; char mat[502][502]; bitset<5001> dp[502][502]; int main() { #ifdef fisier ifstream f("input.in"); ofstream g("output.out"); #endif ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> m >> k; for(int i = 0; i < n; ++i) cin >> mat[i]; cin >> s; for(int i = 0; i < n; ++i) for(int j = 0; j < m; ++j) if(mat[i][j] != '#') dp[i][j][0] = 1; for(int x = 0; x < k; ++x) { if(s[x] == 'E') { for(int i = 0; i < n; ++i) for(int j = 0; j + 1 < m; ++j) { if(dp[i][j][x] == 0) continue; if(mat[i][j+1] != '#') dp[i][j+1][x+1] = 1; } } if(s[x] == 'W') { for(int i = 0; i < n; ++i) for(int j = 1; j < m; ++j) { if(dp[i][j][x] == 0) continue; if(mat[i][j-1] != '#') dp[i][j-1][x+1] = 1; } } if(s[x] == 'N') { for(int i = 1; i < n; ++i) for(int j = 0; j < m; ++j) { if(dp[i][j][x] == 0) continue; if(mat[i-1][j] != '#') dp[i-1][j][x+1] = 1; } } if(s[x] == 'S') { for(int i = 0; i + 1 < n; ++i) for(int j = 0; j < m; ++j) { if(dp[i][j][x] == 0) continue; if(mat[i+1][j] != '#') dp[i+1][j][x+1] = 1; } } if(s[x] == '?') { for(int i = 0; i < n; ++i) for(int j = 0; j < m; ++j) { if(dp[i][j][x] == 0) continue; if(j + 1 < m && mat[i][j+1] != '#') dp[i][j+1][x+1] = 1; if(i + 1 < n && mat[i+1][j] != '#') dp[i+1][j][x+1] = 1; if(j && mat[i][j-1] != '#') dp[i][j-1][x+1] = 1; if(i && mat[i-1][j] != '#') dp[i-1][j][x+1] = 1; } } } int ans = 0; for(int i = 0; i < n; ++i) for(int j = 0; j < m; ++j) ans += dp[i][j][k]; cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...