제출 #540877

#제출 시각아이디문제언어결과실행 시간메모리
540877OlympiaNautilus (BOI19_nautilus)C++17
100 / 100
248 ms1040 KiB
#include <cmath> #include <iostream> #include <set> #include <climits> #include <cstdio> #include <algorithm> #include <cassert> #include <string> #include <vector> #include <iomanip> #include <unordered_map> #include <type_traits> #include <bit> #include <bitset> #include <string> #include <queue> #define ll long long #include <map> using namespace std; vector<string> vec; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int R, C, M; cin >> R >> C >> M; vec.resize(R); for (int i = 0; i < R; i++) { cin >> vec[i]; assert(vec[i].size() == C); } string s; cin >> s; vector<bitset<1000>> orig(R); for (int i = 0; i < R; i++) { for (int j = 0; j < C; j++) { if (vec[i][j] == '.') { orig[i].set(j + 500); } } } vector<bitset<1000>> pos = orig; map<char, pair<int, int>> myMap; myMap['W'] = {0, -1}; myMap['E'] = {0, 1}; myMap['S'] = {1, 0}; myMap['N'] = {-1, 0}; for (int i = 0; i < s.length(); i++) { vector<bitset<1000>> dum(R); if (s[i] == '?' || s[i] == 'W') { for (int j = 0; j < R; j++) { dum[j] |= (pos[j] >> 1); } } if (s[i] == '?' || s[i] == 'E') { for (int j = 0; j < R; j++) { dum[j] |= (pos[j] << 1); } } if (s[i] == '?' || s[i] == 'N') { for (int j = 0; j < R - 1; j++) { dum[j] |= pos[j + 1]; } } if (s[i] == '?' || s[i] == 'S') { for (int j = 1; j < R; j++) { dum[j] |= pos[j - 1]; } } for (int j = 0; j < R; j++) { pos[j] = dum[j] & orig[j]; } } int ans = 0; for (int i = 0; i < R; i++) { ans += pos[i].count(); } cout << ans; }

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

In file included from /usr/include/c++/10/cassert:44,
                 from nautilus.cpp:7:
nautilus.cpp: In function 'int main()':
nautilus.cpp:33:30: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   33 |         assert(vec[i].size() == C);
      |                ~~~~~~~~~~~~~~^~~~
nautilus.cpp:51:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |     for (int i = 0; i < s.length(); i++) {
      |                     ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...