Submission #390271

#TimeUsernameProblemLanguageResultExecution timeMemory
390271ritul_kr_singhNautilus (BOI19_nautilus)C++17
100 / 100
211 ms708 KiB
#pragma GCC optimize("Ofast") #include <bits/stdc++.h> using namespace std; #define int long long #define sp << ' ' << #define nl << '\n' const int sz = 500*500; signed main(){ cin.tie(0)->sync_with_stdio(0); int r, c, m; cin >> r >> c >> m; char inp; bitset<sz> a, b, x, y, g; for(int i=0; i<r; ++i){ for(int j=0; j<c; ++j){ cin >> inp; g[i*c+j] = b[i*c+j] = (inp == '.'); x[i*c+j] = j!=0; y[i*c+j] = j!=c-1; } } string s; cin >> s; for(int k=0; k<m; ++k){ a = b; b = bitset<sz>(0); if(s[k] == 'S' or s[k] == '?') b |= (a << c); if(s[k] == 'N' or s[k] == '?') b |= (a >> c); if(s[k] == 'E' or s[k] == '?') b |= (a << 1) & x; if(s[k] == 'W' or s[k] == '?') b |= (a >> 1) & y; b = b & g; } int res = 0; for(int i=0; i<r; ++i) for(int j=0; j<c; ++j) res += b[i*c+j]; cout << res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...