|
i=1;i<=n;i++) #define Fork(i,k,n) for(int i=k;i<=n;i++) #define Rep(i,n) for(int i=0;i
=0;i--) #define Forp(x) for(int p=pre[x];p;p=next[p]) #define Lson (x<<1) #define Rson ((x<<1)+1) #define MEM(a) memset(a,0,sizeof(a)); #define MEMI(a) memset(a,127,sizeof(a)); #define MEMi(a) memset(a,128,sizeof(a)); #define INF (2139062143) #define F (100000007) #define MAXN (100+10) #define MP make_pair long long mul(long long a,long long b){return (a*b)%F;} long long add(long long a,long long b){return (a+b)%F;} long long sub(long long a,long long b){return (a-b+(a-b)/F*F+F)%F;} typedef long long ll; int n; char s[MAXN]; int a[MAXN][MAXN]; bool b[MAXN][MAXN]={0}; int d[MAXN][MAXN]; vector
> v; int &cx=n,&cy=n; int main() { // freopen("d.in","r",stdin); // freopen(".out","w",stdout); cin>>n; For(i,n) { scanf("%s",s+1); For(j,n) { switch (s[j]) { case'o':a[i][j]=2; v.push_back(MP(i,j)) ; break; case'x':a[i][j]=1 ; break; case'.':a[i][j]=0 ; break; } } } d[cx][cy]=2; For(i,2*n-1) For(j,2*n-1) { if (i==cx&&j==cy) continue; int dx=i-cx,dy=j-cy; bool flag=1; for(vector
>::iterator it=v.begin();it!=v.end();it++) { int x=it->first,y=it->second; if (1<=x+dx&&x+dx<=n&&1<=y+dy&&y+dy<=n) if (!a[x+dx][y+dy]) { flag=0; break; } } d[i][j]=flag; } For(i,2*n-1) For(j,2*n-1) { if (i==cx&&j==cy) continue; if (!d[i][j]) continue; int dx=i-cx,dy=j-cy; for(vector
>::iterator it=v.begin();it!=v.end();it++) { int x=it->first,y=it->second; if (1<=x+dx&&x+dx<=n&&1<=y+dy&&y+dy<=n) b[x+dx][y+dy]=1; } } For(i,n) For(j,n) if (a[i][j]!=2) if (b[i][j]^a[i][j]) { cout<<"NO"<
?
?
?
|