Oil Deposits
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
char map[21][21];
int M,N,res;
int xx[]={0,0,1,-1,-1,1,-1,1};
int yy[]={1,-1,0,0,1,-1,-1,1};
int fun(int x,int y)
{
if(x<0||y<0||x>=N||y>=M)
return 0;
return 1;
}
void DFS(int x,int y)
{
int i,j,x1,y1;
map[x][y]='*';
for(i=0;i<8;i++)
{
x1=x+xx[i];
y1=y+yy[i];
if(map[x1][y1]=='@'&&fun(x1,y1))
{
DFS(x1,y1);
}
}
}
int main( )
{
while(scanf("%d%d",&N,&M),N||M)
{
int i,j,a,b;
res=0;
getchar();
for(i=0;i<N;i++)
for(j=0;j<M;j++)
cin>>map[i][j];
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
if(map[i][j]=='@')
{
res++;
DFS(i,j);
}
}
printf("%d\n",res);
}
return 0;
}
注意输入格式。。其它的跟上面那题一样。
posted on 2011-05-11 03:49 more think, more gains 阅读(121) 评论(0) 收藏 举报
浙公网安备 33010602011771号