Submission #496569

#TimeUsernameProblemLanguageResultExecution timeMemory
496569kinglineNautilus (BOI19_nautilus)C++17
100 / 100
175 ms644 KiB
/*#pragma GCC optimize("O3") #pragma GCC target ("avx2") #pragma GCC optimize("Ofast") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #pragma GCC optimize("unroll-loops")*/ #include <bits/stdc++.h> #define file(data) freopen(data".in", "r", stdin); freopen(data".out", "w", stdout); #define pb push_back #define ios ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define all(data) data.begin() , data.end() #define endl '\n' //freopen("nenokku_easy.in", "r", stdin); //freopen("nenokku_easy.out", "w", stdout); //#define int long long #define pii pair < int, int > using namespace std; typedef long long ll; const int N = 2e5; int r, C, m; char c[505][505]; string s; main() { /*ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);*/ //file("pieaters"); cin >> r >> C >> m; bitset < 501 > b[505], bad[505], zer, last[505]; for(int i = 1; i <= r; i++) { for(int j = 1; j <= C; j++) { cin >> c[i][j]; bad[i][j] = (c[i][j] == '.'); b[i][j] = (c[i][j] == '.'); } } cin >> s; for(int k = 0; k < s.size(); k++) { if(s[k] == 'W') { for(int i = 1; i <= r; i++) { b[i] >>= 1; b[i] &= bad[i]; } } if(s[k] == 'E') { for(int i = 1; i <= r; i++) { b[i] <<= 1; b[i] &= bad[i]; } } if(s[k] == 'N') { for(int i = 1; i < r; i++) { b[i] = b[i + 1] & bad[i]; } b[r] = zer; } if(s[k] == 'S') { for(int i = r; i > 1; i--) { b[i] = b[i - 1] & bad[i]; } b[1] = zer; } if(s[k] == '?') { for (int i = 1; i <= r; i++) { last[i] = b[i]; } for(int i = 1; i <= r; i++) { b[i] = ((b[i] << 1) | (b[i] >> 1) | last[i + 1] | last[i - 1]); b[i] &= bad[i]; } } } int ans = 0; for(int i = 1; i <= r; i++) { ans += b[i].count(); } cout << ans; } /* 5 9 7 ...##.... ..#.##..# ..#....## .##...#.. ....#.... WS?EE?? */

Compilation message (stderr)

nautilus.cpp:26:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   26 | main() {
      | ^~~~
nautilus.cpp: In function 'int main()':
nautilus.cpp:41:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |     for(int k = 0; k < s.size(); k++) {
      |                    ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...