제출 #1107177

#제출 시각아이디문제언어결과실행 시간메모리
1107177danielsuhTracks in the Snow (BOI13_tracks)C++17
8.85 / 100
2122 ms983600 KiB
#include <bits/stdc++.h> typedef long long ll; using namespace std; bool check(vector<string>& grid) { for(int i = 0; i < (int) grid.size(); i++) { for(int j = 0; j < (int) grid[0].size(); j++) { if(grid[i][j] == 'F' || grid[i][j] == 'R') { return false; } } } return true; } vector<int> dx = {1, -1, 0, 0}; vector<int> dy = {0, 0, 1, -1}; void floodfill(vector<string>& grid, vector<vector<bool>>& visited, int i, int j, char current_animal) { if(i < 0 || j < 0 || i >= grid.size() || j >= grid[0].size()) return; if(grid[i][j] != current_animal && grid[i][j] != '#') return; if(visited[i][j]) return; visited[i][j] = true; grid[i][j] = '#'; for(int k = 0; k < 4; k++) { floodfill(grid, visited, i + dx[k], j + dy[k], current_animal); } } int32_t main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, M; cin >> N >> M; vector<string> grid(N); for(auto &x : grid) cin >> x; vector<vector<bool>> visited(N, vector<bool>(N, false)); char current_animal = grid[0][0]; int sum = 0; while(!check(grid)) { for(int i = 0; i < N; i++) { for(int j = 0; j < M; j++) { if(grid[i][j] == current_animal) { floodfill(grid, visited, i, j, current_animal); visited[i][j] = true; fill(visited.begin(), visited.end(), vector<bool>(N, false)); current_animal = (current_animal == 'R' ? 'F' : 'R'); sum++; } } } } cout << sum << endl; }

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

tracks.cpp: In function 'void floodfill(std::vector<std::__cxx11::basic_string<char> >&, std::vector<std::vector<bool> >&, int, int, char)':
tracks.cpp:21:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |  if(i < 0 || j < 0 || i >= grid.size() || j >= grid[0].size()) return;
      |                       ~~^~~~~~~~~~~~~~
tracks.cpp:21:45: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |  if(i < 0 || j < 0 || i >= grid.size() || j >= grid[0].size()) return;
      |                                           ~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...