Saturday, June 6, 2015

LightOJ - 1012 - Guilty Prince

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int ans, row, col;
  4. char Kingdom[23][23];
  5. void dfs(int i, int j){
  6.     if(< 0 || i >= row || j < 0 || j >= col)return;
  7.     else if(Kingdom[i][j] == '.')Kingdom[i][j] = 35, ans++;
  8.     else if(Kingdom[i][j] == 35)return;
  9.     dfs(i, j+1);
  10.     dfs(i+1, j);
  11.     dfs(i, j-1);
  12.     dfs(i-1, j);
  13. }
  14. int main(){
  15.     int t, cs = 0;
  16.     scanf("%d"&t);
  17.     while(t--){
  18.         scanf("%d %d"&col, &row);
  19.         memset(Kingdom, 0sizeof(Kingdom));
  20.         for(int i = 0; i < row; i++)scanf("%s", Kingdom[i]);
  21.         for(int i = 0; i < row; i++){
  22.             for(int j = 0; j < col; j++){
  23.                 ans = 0;
  24.                 if(Kingdom[i][j] == '@'){
  25.                     dfs(i, j);break;
  26.                 }
  27.             }if(ans)break;
  28.         }
  29.         printf("Case %d: %d\n"++cs, ans+1);
  30.     }
  31.     return 0;
  32. }

No comments:

Post a Comment