Submission #1107431

#TimeUsernameProblemLanguageResultExecution timeMemory
1107431LinhLewLewNautilus (BOI19_nautilus)C++17
100 / 100
181 ms1060 KiB
// PhuThuyRuntime <3 // A secret makes a woman woman #include <bits/stdc++.h> using namespace std; #define eb emplace_back #define ef emplace_front #define pb push_back #define pf push_front #define all(v) v.begin(), v.end() #define ins insert #define lb lower_bound #define ub upper_bound #define fo(i, l, r) for(int i = l; i <= r; i++) #define foi(i, l, r) for(int i = l; i >= r; i--) #define elif else if #define el cout << "\n"; #define pii pair<int, int> #define pli pair<ll, int> #define pll pair<ll, ll> #define pil pair<int, ll> #define fi first #define se second #define in(x) freopen(x, "r", stdin) #define out(x) freopen(x, "w", stdout) #define ll long long #define ull unsigned long long #define pob pop_back #define vi vector<int> #define vii vector<pair<int, int>> #define getbit(i, j) ((i >> j) & 1) #define offbit(i, j) ((1 << j) ^ i) #define onbit(i, j) ((1 << j) | i) const int N = 1e5 + 2; const ll mod = 1e9 + 7; const int inf = INT_MAX; const int base = 31; const long double EPS = 1e-9; const long double pi = acos(-1.0); int n, m, q; char a[505][505]; bitset<505> bs[505], dp[505]; void inp(){ cin >> n >> m >> q; fo(i, 1, n){ fo(j, 1, m){ cin >> a[i][j]; if(a[i][j] == '.') dp[i][j] = bs[i][j] = 1; } } } bitset<505> tmp[505]; void sol(){ while(q--){ char ch; cin >> ch; if(ch == 'N'){ fo(i, 1, n) tmp[i] = bs[i] & dp[i + 1]; } else if(ch == 'E'){ fo(i, 1, n) tmp[i] = bs[i] & (dp[i] << 1); } else if(ch == 'S'){ fo(i, 1, n) tmp[i] = bs[i] & dp[i - 1]; } else if(ch == 'W'){ fo(i, 1, n) tmp[i] = bs[i] & (dp[i] >> 1); } else{ fo(i, 1, n) tmp[i] = bs[i] & (dp[i + 1] | dp[i - 1] | (dp[i] << 1) | (dp[i] >> 1)); } fo(i, 1, n) dp[i] = tmp[i]; } int ans = 0; fo(i, 1, n) ans += dp[i].count(); cout << ans; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); inp(); sol(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...