记录编号 420213 评测结果 AAAAAAAAAA
题目名称 1647.[UVa 572] 油田 最终得分 100
用户昵称 Hyoi_0Koto 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2017-07-04 08:50:00 内存使用 0.00 MiB
显示代码纯文本
#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<cstring>
#define XLM
using namespace std;
const int maxn=110;
//variable
int m,n,G[maxn][maxn],a[maxn][maxn],ans;
char temp;
//input_data
inline void in(){
	#ifdef XLM
	freopen("oild.in","r",stdin);
	freopen("oild.out","w",stdout);
	#endif
}
//clear before deal
inline void init(){
	//memset(a,-1,sizeof(char));
	memset(G,0,sizeof(int));
	ans=0;
}
//dfs to find the oil deposit
inline void dfs(int x,int y){
	if (!G[x][y]) return;
	G[x][y]=0;
	dfs(x-1,y-1);dfs(x-1,y);dfs(x-1,y+1);
	dfs(x,y-1);dfs(x,y+1);
	dfs(x+1,y-1);dfs(x+1,y);dfs(x+1,y+1);
}
//circulate to calculate
inline void deal(){
	while (scanf("%d%d",&m,&n)==2&&m&&n){
		init();
		for (int i=1;i<=m;i++){
			for (int j=1;j<=n;j++){
				cin>>temp;
				if (temp=='@') G[i][j]=1;
				else G[i][j]=0;
			}
		}
		//seedfill
		for (int i=1;i<=m;i++){
			for (int j=1;j<=n;j++){
				if (G[i][j]){
					ans++;
					dfs(i,j);
				}
			}
		}
		printf("%d\n",ans);
	}
}
//main
int Main(){
	in();
	deal();
	return 0;
}
int xlm=Main();
int main(){;}