fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int r, c, visited[21][21], ret = 1, cnt[26];
  4. int dy[] = {-1, 0, 1, 0};
  5. int dx[] = {0, 1, 0, -1};
  6. char a[21][21];
  7.  
  8. int dfs(int y, int x){
  9. int ret = 1;
  10. for(int i = 0; i < 4; i++){
  11. int ny = y + dy[i];
  12. int nx = x + dx[i];
  13. if(ny < 0 || ny >= r || nx < 0 || nx >= c || visited[ny][nx] || cnt[a[ny][nx] - 'A']) continue;
  14. visited[ny][nx] = 1;
  15. cnt[a[ny][nx] - 'A'] = 1;
  16. ret += dfs(ny, nx);
  17. }
  18. return ret;
  19. }
  20. int main(){
  21. cin >> r >> c;
  22. for(int i = 0; i < r; i++){
  23. for(int j = 0; j < c; j++){
  24. cin >> a[i][j];
  25. }
  26. }
  27.  
  28. visited[0][0] = 1;
  29. cnt[a[0][0] - 'A'] = 1;
  30. cout << dfs(0, 0) << '\n';
  31. }
Success #stdin #stdout 0.01s 5308KB
stdin
3 6
HFDFFB
AJHGDH
DGAGEH
stdout
6