Submission #570124

#TimeUsernameProblemLanguageResultExecution timeMemory
570124danikoynovNautilus (BOI19_nautilus)C++14
66 / 100
1082 ms8812 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 510; int n, m, l, used[maxn][maxn]; int dir(char c) { if (c == 'N') return 0; if (c == 'E') return 1; if (c == 'S') return 2; if (c == 'W') return 3; return -1; } char c[maxn][maxn]; int us[maxn][maxn]; pair < int, int > nb[4] = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}}; void solve() { cin >> n >> m >> l; for (int i = 1; i <= n; i ++) for (int j = 1; j <= m; j ++) { cin >> c[i][j]; if (c[i][j] == '#') used[i][j] = 1; } for (int i = 0; i <= n + 1; i ++) used[i][0] = used[i][m + 1] = 1; for (int i = 0; i <= m + 1; i ++) used[0][i] = used[n + 1][i] = 1; vector < pair < int, int > > v; for (int i = 1; i <= n; i ++) for (int j = 1; j <= m; j ++) if (used[i][j] == 0) v.push_back({i, j}); for (int i = 1; i <= l; i ++) { for (int j = 1; j <= n; j ++) for (int p = 1; p <= m; p ++) us[j][p] = 0; char c; cin >> c; vector < pair < int, int > > new_v; for (int d = 0; d < 4; d ++) { if (dir(c) == d || dir(c) == -1) { for (int j = 0; j < v.size(); j ++) { pair < int, int > neib = v[j]; neib.first = neib.first + nb[d].first; neib.second = neib.second + nb[d].second; if (used[neib.first][neib.second]) continue; us[neib.first][neib.second] = 1; } } } /** for (int j = 1; j <= n; j ++, cout << endl) for (int p = 1; p <= m; p ++) cout << us[j][p]; cout << "-----------------" << endl;*/ for (int j = 1; j <= n; j ++) for (int p = 1; p <= m; p ++) if (us[j][p]) new_v.push_back({j, p}); v = new_v; } cout << v.size() << endl;; } int main() { solve(); return 0; }

Compilation message (stderr)

nautilus.cpp: In function 'void solve()':
nautilus.cpp:60:35: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |                 for (int j = 0; j < v.size(); j ++)
      |                                 ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...