POJ_1979:Red and Black

#include <iostream>
#include <stdio.h>


using namespace std;

#define MAX 25
char s[MAX][MAX];
int sum;

int a[4][2] = {-1,0,1,0,0,1,0,-1};

void DFS(int i,int j,int m,int n)
{
    s[i][j] = '#';
    sum++;
    int tempx,tempy;
    for(int k = 0; k < 4; k++)
    {
        tempx = i + a[k][0];
        tempy = j + a[k][1];
        if((tempx >= 0 && tempx < m) && (tempy >= 0 && tempy < n) && s[tempx][tempy] == '.')
        {
            DFS(tempx,tempy,m,n);
        }
    }
}

int main()
{
    int m,n;
    int markx,marky;
    while(cin >> n >> m,m && n)
    {
        for(int i = 0; i < m; i++)
        {
            scanf("%s",s[i]);
            for(int j = 0; j < n; j++)
            {
                if(s[i][j] == '@')
                {
                    markx = i;
                    marky = j;
                }
            }
        }
        sum = 0;
        DFS(markx,marky,m,n);
        cout << sum << endl;
    }
    return 0;
}

 

這裏注意最基本的IO用法就能夠了。ios

相關文章
相關標籤/搜索