记录编号 422219 评测结果 AAAAAAAAAA
题目名称 [UVa 572] 油田 最终得分 100
用户昵称 GravatarHyoi_0Koto 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2017-07-09 11:20:24 内存使用 0.00 MiB
显示代码纯文本
#include<cstdio>
#include<cctype>
#include<cstring>
int n,m,gox[8]={1,0,-1,0,1,-1,1,-1},goy[8]={0,1,0,-1,1,-1,-1,1},ans;
char g[101][101];
bool vis[101][101];
inline void in(int &x){
    x=0;int f=1;char c=getchar();
    while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
    while(isdigit(c)){x=x*10+c-48;c=getchar();}
    x*=f;
}
inline void out(int x){//负数不可 
	char c[10]={0};
	while(c[++c[0]]=x%10+'0',x/=10,x);
	while(putchar(c[c[0]]),--c[0],c[0]);
}
inline void dfs(int x,int y,int d){
	if(g[x][y]=='*') return;
	if(vis[x][y]) return;
	if(d==1) ans++;
	vis[x][y]=1;
	for(int i=0;i<8;i++){
			if(x+gox[i]>0&&x+gox[i]<=m&&y+goy[i]>0&&y+goy[i]<=n) dfs(x+gox[i],y+goy[i],d+1);
		}
}
inline int mian(){
	freopen("oild.in","r",stdin);
    freopen("oild.out","w",stdout);
    in(m);in(n);
    while(m&&n){
    	ans=0;memset(vis,0,sizeof(vis));
    	for(int i=1;i<=m;i++) scanf("%s",g[i]+1);
		for(int i=1;i<=m;i++)
			for(int j=1;j<=n;j++)
				dfs(i,j,1);
	out(ans);putchar('\n');
	in(m);in(n);
	}
	return 0;
}
int shimakaze=mian();
int main(){;}