Submission #725493

#TimeUsernameProblemLanguageResultExecution timeMemory
725493TheSahibZoo (COCI19_zoo)C++17
110 / 110
98 ms5828 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3") #define ll long long #define pii pair<int, int> using namespace std; const int MAX = 1005; pii dirs[4] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; int n, m; int grid[MAX][MAX]; bool visited[MAX][MAX]; vector<pii> lastNodes, nodes; void dfs(pii cord){ visited[cord.first][cord.second] = 1; for(pii d:dirs){ pii cord1 = {cord.first + d.first, cord.second + d.second}; if(cord1.first >= 0 && cord1.first < n && cord1.second >= 0 && cord1.second < m && !visited[cord1.first][cord1.second]){ if(grid[cord1.first][cord1.second] == grid[cord.first][cord.second]){ dfs(cord1); } else if(grid[cord1.first][cord1.second] == 3 - grid[cord.first][cord.second]){ nodes.push_back(cord1); } } } } int main(){ cin >> n >> m; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { char c; cin >> c; if(c == 'B'){ grid[i][j] = 1; } else if(c == 'T'){ grid[i][j] = 2; } } } int ans = 1; int last = 0; nodes.push_back({0, 0}); while(true){ lastNodes = nodes; nodes.clear(); for(pii p:lastNodes){ if(!visited[p.first][p.second]){ dfs(p); } } if(nodes.size() == 0){ break; } else{ ++ans; } } cout << ans << '\n'; }

Compilation message (stderr)

zoo.cpp: In function 'int main()':
zoo.cpp:50:9: warning: unused variable 'last' [-Wunused-variable]
   50 |     int last = 0;
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...