Submission #1290845

#TimeUsernameProblemLanguageResultExecution timeMemory
1290845Jawad_Akbar_JJNautilus (BOI19_nautilus)C++20
100 / 100
179 ms1356 KiB
#include <iostream> #include <bitset> using namespace std; bitset<505 * 505> cur, Lft, Rgt, Dwn, Up; string s, ss; int main(){ int n, m, k; cin>>n>>m>>k; for (int i=0;i<n;i++) cin>>s, ss += s; for (int i=0;i<n * m;i++){ if (i % m != 0 and ss[i-1] != '#') Lft[i] = 1; if (i % m != m - 1 and ss[i+1] != '#') Rgt[i] = 1; if (i / m != 0 and ss[i-m] != '#') Up[i] = 1; if (i / m != n - 1 and ss[i+m] != '#') Dwn[i] = 1; if (ss[i] != '#') cur[i] = 1; } cin>>s; for (int i=1;i<=k;i++){ if (s[i-1] == 'E'){ cur = (cur & Rgt) << 1; } else if (s[i-1] == 'W'){ cur = (cur & Lft) >> 1; } else if (s[i-1] == 'N'){ cur = (cur & Up ) >> m; } else if (s[i-1] == 'S'){ cur = (cur & Dwn) << m; } else{ cur = ((cur & Rgt) << 1) | ((cur & Lft) >> 1) | ((cur & Up) >> m) | ((cur & Dwn) << m); } } cout<<cur.count()<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...