Submission #522219

#TimeUsernameProblemLanguageResultExecution timeMemory
522219blueNautilus (BOI19_nautilus)C++17
100 / 100
168 ms704 KiB
#include <iostream> #include <bitset> #include <algorithm> using namespace std; const int mx = 500; int main() { bitset<(mx+2) * (mx+2)> grid, DP0, DP1; int R, C, M; cin >> R >> C >> M; for(int i = 1; i <= R; i++) { for(int j = 1; j <= C; j++) { char c; cin >> c; if(c == '.') grid.set((mx+2) * i + j); } } string S; cin >> S; DP0 = grid; for(char c : S) { if(c == 'N') DP1 = (DP0 >> (mx+2)); else if(c == 'S') DP1 = (DP0 << (mx+2)); else if(c == 'W') DP1 = (DP0 >> 1); else if(c == 'E') DP1 = (DP0 << 1); else DP1 = (DP0 << (mx+2)) | (DP0 >> (mx+2)) | (DP0 << 1) | (DP0 >> 1); DP1 &= grid; swap(DP0, DP1); } cout << DP0.count() << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...