记录编号 |
422219 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[UVa 572] 油田 |
最终得分 |
100 |
用户昵称 |
Hyoi_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(){;}