Submission #210323

#TimeUsernameProblemLanguageResultExecution timeMemory
210323BlerarghNautilus (BOI19_nautilus)C++17
100 / 100
236 ms760 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair<ll,ll> ii; typedef pair<ld,ld> id; #define FOR(i, a, b) for(int i=(a); i<=(b); i++) #define ROF(i, a, b) for(int i=(a); i>=(b); i--) #define MEM(x, v) memset(x, v, sizeof(x)) #define FILL(x, n, v) fill(x, x+n, v); #define ALL(x) x.begin(), x.end() #define SORT(x) sort((x).begin(), (x).end()) #define CMPSORT(x, cp) sort((x).begin(), (x).end(), cp) #define FAST ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define f first #define s second #define ins insert #define e emplace #define eb emplace_back #define ef emplace_front #define p push #define pf push_front #define pb push_back #define mp make_pair #define ub upper_bound #define lb lower_bound #define ft front #define bk back #define pp pop #define ppb pop_back #define ppf pop_front #define db cout<<"YEET\n"; #define ct(x) cout<<x<<'\n'; const ll MOD = 1e9+7; //998244353 const ll MAXN = 2e5+5; const ll INF = 1e18; const ld PI = acos((ld)-1); int main(){ FAST ll r, c, k; bitset<505> dp[505], sea[505], prev[505]; cin >> r >> c >> k; FOR(i,1,r){ FOR(j,1,c){ char ch; cin >> ch; if (ch == '.'){ sea[i][j]=1; dp[i][j]=1; prev[i][j]=1; } else { sea[i][j]=0; dp[i][j]=0; prev[i][j]=0; } } } FOR(i,1,k){ char ch; cin >> ch; FOR(j,1,r){ if (ch == 'N'){ dp[j] = prev[j+1]&sea[j]; } else if (ch == 'E'){ dp[j] = (prev[j]<<1)&sea[j]; } else if (ch == 'S'){ dp[j] = prev[j-1]&sea[j]; } else if (ch == 'W'){ dp[j] = (prev[j]>>1)&sea[j]; } else { dp[j] = (prev[j-1] | prev[j+1] | prev[j]>>1 | prev[j]<<1)&sea[j]; } } FOR(j,1,r) prev[j]=dp[j]; } ll res=0; FOR(i,1,r) res+=dp[i].count(); cout << res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...