typedef pair<int,int> PII; constint dx[4]={1,0,-1,0}; constint dy[4]={0,1,0,-1}; char map[10][10]; int b[10][10]; int index;
intbfs(int x,int y) { int res=0; queue<PII> Q; Q.push(PII(x,y)); b[x][y]=1; while (!Q.empty()) { int x=Q.front().first; int y=Q.front().second; Q.pop(); for (int i=0;i<4;i++) { int xx=x+dx[i]; int yy=y+dy[i]; if (xx<0||yy<0||xx>=9||yy>=9) continue; if (map[xx][yy]=='.') { if (b[xx][yy]!=index) { ++res; b[xx][yy]=index; } /*********WA********* ++res; ********************/ } elseif (map[xx][yy]=='o'&&!b[xx][yy]) { b[xx][yy]=1; Q.push(PII(xx,yy)); } } } return res; }
intmain() { int T,t=0; scanf("%d",&T); WCON: while (++t<=T) { for (int i=0;i<9;i++) scanf("%s",map[i]); printf("Case #%d: ",t); memset(b,0,sizeof(b)); index=0; for (int i=0;i<9;i++) { for (int j=0;j<9;j++) { if (map[i][j]=='o'&&!b[i][j]) { ++index; int tmp=bfs(i,j); if (tmp<=1) { puts("Can kill in one move!!!"); goto WCON; } } } } puts("Can not kill in one move!!!"); } }