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