/*
ID:wconvey
PROG:transform
LANG:C++
*/
#include<iostream>
#include<cstdio>
using namespace std;
int n;
char maze[12][12],m[12][12],maze1[12][12];
int match()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(m[i][j]!=maze1[i][j])
return 0;
return 1;
}
int transform_1()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[j][n-i-1]=maze[i][j];
if(match())
return 1;
else
return 0;
}
int transform_2()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[n-i-1][n-j-1]=maze[i][j];
if(match())
return 1;
else
return 0;
}
int transform_3()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[n-j-1][i]=maze[i][j];
if(match())
return 1;
else
return 0;
}
int transform_4()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[i][n-j-1]=maze[i][j];
if(match())
return 1;
else
return 0;
}
int transform_5()
{
char m1[12][12];
//transform_4();
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m1[i][n-j-1]=maze[i][j];
/*if(transform_1())
return 1;*/
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[j][n-i-1]=m1[i][j];
if(match())
return 1;
/*if(transform_2())
return 1;*/
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[n-i-1][n-j-1]=m1[i][j];
if(match())
return 1;
/*if(transform_3())
return 1;*/
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[n-j-1][i]=m1[i][j];
if(match())
return 1;
return 0;
}
int transform_6()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[i][j]=maze[i][j];
if(match())
return 1;
else
return 0;
}
int main()
{
int i,j;
freopen("transform.in","r",stdin);
freopen("transform.out","w",stdout);
cin>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>maze[i][j];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>maze1[i][j];
if(transform_1())
printf("1\n");
else if(transform_2())
printf("2\n");
else if(transform_3())
printf("3\n");
else if(transform_4())
printf("4\n");
else if(transform_5())
printf("5\n");
else if(transform_6())
printf("6\n");
else
printf("7\n");
return 0;
ID:wconvey
PROG:transform
LANG:C++
*/
#include<iostream>
#include<cstdio>
using namespace std;
int n;
char maze[12][12],m[12][12],maze1[12][12];
int match()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(m[i][j]!=maze1[i][j])
return 0;
return 1;
}
int transform_1()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[j][n-i-1]=maze[i][j];
if(match())
return 1;
else
return 0;
}
int transform_2()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[n-i-1][n-j-1]=maze[i][j];
if(match())
return 1;
else
return 0;
}
int transform_3()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[n-j-1][i]=maze[i][j];
if(match())
return 1;
else
return 0;
}
int transform_4()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[i][n-j-1]=maze[i][j];
if(match())
return 1;
else
return 0;
}
int transform_5()
{
char m1[12][12];
//transform_4();
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m1[i][n-j-1]=maze[i][j];
/*if(transform_1())
return 1;*/
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[j][n-i-1]=m1[i][j];
if(match())
return 1;
/*if(transform_2())
return 1;*/
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[n-i-1][n-j-1]=m1[i][j];
if(match())
return 1;
/*if(transform_3())
return 1;*/
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[n-j-1][i]=m1[i][j];
if(match())
return 1;
return 0;
}
int transform_6()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
m[i][j]=maze[i][j];
if(match())
return 1;
else
return 0;
}
int main()
{
int i,j;
freopen("transform.in","r",stdin);
freopen("transform.out","w",stdout);
cin>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>maze[i][j];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>maze1[i][j];
if(transform_1())
printf("1\n");
else if(transform_2())
printf("2\n");
else if(transform_3())
printf("3\n");
else if(transform_4())
printf("4\n");
else if(transform_5())
printf("5\n");
else if(transform_6())
printf("6\n");
else
printf("7\n");
return 0;
}
直接模拟