제출 #730650

#제출 시각아이디문제언어결과실행 시간메모리
730650gagik_2007Nautilus (BOI19_nautilus)C++17
66 / 100
1065 ms1236 KiB
#include <iostream> #include <algorithm> #include <string> #include <vector> #include <cmath> #include <chrono> #include <ctime> #include <set> #include <map> #include <stack> #include <queue> #include <deque> #include <limits> #include <iomanip> #include <unordered_set> #include <unordered_map> #include <fstream> #include <functional> #include <random> #include <cassert> using namespace std; typedef long long ll; typedef long double ld; #pragma GCC optimize("Ofast") #define ff first #define ss second ll ttt; const ll INF = 1e18; const ll MOD = 1e9 + 7; const ll N = 507; const ll LG = 21; ll n, m, k; char a[N][N]; string s; bool dp[N][N]; bool lst[N][N]; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m >> k; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cin >> a[i][j]; if (a[i][j] == '.') { dp[i][j] = true; } } } for (int i = 0; i <= n + 1; i++) { a[i][0] = a[i][m + 1] = '#'; } for (int j = 0; j <= m + 1; j++) { a[0][j] = a[n + 1][j] = '#'; } cin >> s; for (int c = 0; c < s.size(); c++) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { lst[i][j] = dp[i][j]; dp[i][j] = false; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (lst[i][j]) { if (s[c] == 'N' || s[c] == '?') { if (a[i - 1][j] == '.') { dp[i - 1][j] = true; } } if (s[c] == 'E' || s[c] == '?') { if (a[i][j + 1] == '.') { dp[i][j + 1] = true; } } if (s[c] == 'S' || s[c] == '?') { if (a[i + 1][j] == '.') { dp[i + 1][j] = true; } } if (s[c] == 'W' || s[c] == '?') { if (a[i][j - 1] == '.') { dp[i][j - 1] = true; } } } } } } int cnt = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cnt += dp[i][j]; } } cout << cnt << endl; } /// ---- - -------- ------ -------- -- - - - /// Just a reminder. Ubuntu password is I O I /// ---- - -------- ------ -------- -- - - -

컴파일 시 표준 에러 (stderr) 메시지

nautilus.cpp: In function 'int main()':
nautilus.cpp:62:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |  for (int c = 0; c < s.size(); c++) {
      |                  ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...