记录编号 |
109471 |
评测结果 |
AAAAAAA |
题目名称 |
方块转换 |
最终得分 |
100 |
用户昵称 |
devil |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.005 s |
提交时间 |
2014-07-08 19:53:07 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const int MAXN=10+10;
char ori[MAXN][MAXN];
char tem[MAXN][MAXN];
char tem1[MAXN][MAXN];
char ans[MAXN][MAXN];
int n;
bool turn90()
{
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
int t=n-1;
tem[j][t-i]=ori[i][j];
}
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
if(tem[i][j]!=ans[i][j]) return false;
}
return true;
}
bool turn180()
{
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
int t=n-1;
tem[t-i][t-j]=ori[i][j];
}
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
if(tem[i][j]!=ans[i][j]) return false;
}
return true;
}
bool turn270()
{
turn90();
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
int t=n-1;
tem1[t-i][t-j]=tem[i][j];
}
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
if(tem1[i][j]!=ans[i][j]) return false;
}
return true;
}
bool reflex()
{
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
int t=n-1;
tem[i][t-j]=ori[i][j];
}
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
if(tem[i][j]!=ans[i][j]) return false;
}
return true;
}
void asso()
{
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
int t=n-1;
tem[i][t-j]=ori[i][j];
}
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
ori[i][j]=tem[i][j];
}
bool cons()
{
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
if(ori[i][j]!=ans[i][j]) return false;
}
return true;
}
int main()
{
freopen("transformations.in","r",stdin);
freopen("transformations.out","w",stdout);
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%s",ori[i]);
for(int i=0;i<n;i++)
scanf("%s",ans[i]);
if(turn90()) {printf("1");return 0;}
memset(tem,0,sizeof(tem));
if(turn180()) {printf("2");return 0;}
memset(tem,0,sizeof(tem));
if(turn270()) {printf("3");return 0;}
memset(tem,0,sizeof(tem));
if(reflex()) {printf("4");return 0;}
memset(tem,0,sizeof(tem));
asso();
if(turn90()||turn180()||turn270()) {printf("5");return 0;}
asso();
if(cons()) {printf("6");return 0;}
printf("7");
return 0;
}