Submission #1185098

#TimeUsernameProblemLanguageResultExecution timeMemory
1185098susmanTracks in the Snow (BOI13_tracks)C++20
29.58 / 100
783 ms782520 KiB
#include <iostream>
#include <vector>
using namespace std;

int rows, cols;
vector<string> grid;
vector<vector<bool>> visited;

void dfs(int i, int j, char type) {
    if (i < 0 || i >= rows || j < 0 || j >= cols) return;
    if (visited[i][j] || grid[i][j] != type) return;
    visited[i][j] = true;
    dfs(i+1, j, type);
    dfs(i-1, j, type);
    dfs(i, j+1, type);
    dfs(i, j-1, type);
}

int main() {
    cin >> rows >> cols;
    grid.resize(rows);
    visited.assign(rows, vector<bool>(cols, false));
    
    for (int i = 0; i < rows; i++) {
        cin >> grid[i];
    }
    
    int count = 0;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            if (grid[i][j] != '.' && !visited[i][j]) {
                count++;
                dfs(i, j, grid[i][j]);
            }
        }
    }
    
    cout << count << endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...