记录编号 |
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;
- }