Tanky WooRSS

百练OJ 2816 红与黑

19 May 2010
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

可参照:http://www.wutianqi.com/?p=133

 #include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
#define MAX_NUM 21
int W, H;
char aTile[MAX_NUM][MAX_NUM];

int dp(int i, int j);

int cnt = 0;
int main()
{
    int i, j;
    //freopen("input_2816.txt", "r", stdin);
    while(scanf("%d %d", &W;, &H;) == 2 && W != 0 && H != 0)
    {
        for(i = 0; i < H; i++)
            scanf("%s", aTile[i]);
        for(i = 0; i < H; i++)
            for(j = 0; j < W; j++)
                if(aTile[i][j] == '@')
                    printf("%d\n", dp(i, j));
    }
    return 0;
}

int dp(int i, int j)
{
    if(i<0 || i>=H || j<0 || j>=W)
        return 0;
    if(aTile[i][j] == '#')
        return 0;
    else
    {
        aTile[i][j] = '#';
        return 1 + dp(i+1, j) + dp(i-1, j) + dp(i, j+1) + dp(i, j-1);
    }
}