Submission #925929

#TimeUsernameProblemLanguageResultExecution timeMemory
925929vjudge1Nautilus (BOI19_nautilus)C++17
66 / 100
172 ms19724 KiB
// By ObeliX #include <bits/stdc++.h> #pragma GCC target( "sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3") #include <unordered_map> #include <cstddef> #include <cassert> #include <bitset> #include <algorithm> #include <iostream> #include <iomanip> #include <cmath> #include <queue> #include <map> #include <set> using namespace std; const long long N = 1e6 + 5; const long long MOD = 1e7 + 7; const long long inf = 1e18; long long n , m , d , k; long long dp[105][105][105]; int main(){ //freopen( "cinema.in" , "r" , stdin ); //freopen( "cinema.out" , "w" , stdout ); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m >> k; char c[n+5][m+5]; for ( int i = 0 ; i <= n + 1 ; i++ ) { for ( int j = 0 ; j <= m + 1 ; j++ ) { c[i][j] = '.'; } } for ( int i = 1 ; i <= n ; i++ ) { for ( int j = 1 ; j <= m ; j++ ) { cin >> c[i][j]; } } string s; cin >> s; for ( int i = 1 ; i <= n ; i++ ) { for ( int j = 1 ; j <= m ; j++ ) { if ( c[i][j] == '.' ) { dp[0][i][j] = 1; } } } for ( int l = 0 ; l < k ; l++ ) { for ( int i = 1 ; i <= n ; i++ ) { for ( int j = 1 ; j <= m ; j++ ) { if ( c[i][j] != '.' ) { continue; } if ( s[l] == 'W' || s[l] == '?' ) { dp[l+1][i][j] = max( dp[l+1][i][j] , dp[l][i][j+1] ); } if ( s[l] == 'E' || s[l] == '?' ) { dp[l+1][i][j] = max( dp[l+1][i][j] , dp[l][i][j-1] ); } if ( s[l] == 'S' || s[l] == '?' ) { dp[l+1][i][j] = max( dp[l+1][i][j] , dp[l][i-1][j] ); } if ( s[l] == 'N' || s[l] == '?' ) { dp[l+1][i][j] = max( dp[l+1][i][j] , dp[l][i+1][j] ); } } } } long long ans = 0; for ( int i = 1 ; i <= n ; i++ ) { for ( int j = 1 ; j <= m ; j++ ) { if ( dp[k][i][j] == 1 ) { ans++; } } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...