您的位置:首页 > 其它

USACO transform

2017-10-13 14:21 302 查看
#include <iostream>

#include <fstream>

using namespace std;

struct PP{

 char a;

 bool v;

};

bool fun11(PP a[][100],int);

bool fun12(PP a[][100],int);

bool fun13(PP a[][100],int);

bool fun2(PP a[][100],int);

bool fun3(PP a[][100],int);

bool ifsame(PP a[][100],int,PP c[][100]);

PP ans[100][100];

int main()

{

 ifstream cin ("transform.in");

 ofstream cout ("transform.out");

 PP a[100][100];

 int n,i,j;

 cin>>n;

 for(i=0;i<n;i++)

   for(j=0;j<n;j++)

    cin>>a[i][j].a;

 for(i=0;i<n;i++)

  for(j=0;j<n;j++)

   cin>>ans[i][j].a;

 if(fun11(a,n)==1)

  cout<<"1"<<endl;

 else if(fun12(a,n)==1)

  cout<<"2"<<endl;

 else if(fun13(a,n)==1)

  cout<<"3"<<endl;

 else if(fun2(a,n)==1)

  cout<<"4"<<endl;

 else if(fun3(a,n)==1)

  cout<<"5"<<endl;

 else if(ifsame(a,n,ans)==1)

  cout<<"6"<<endl;

 else

  cout<<"7"<<endl;

 

 return 0;

}

bool fun11(PP a[][100],int num)

{

 for(int i=0;i<num;i++)

  for(int
j=0;j<num;j++)

   if(ans[j][num-1-i].a!=a[i][j].a)
return 0;

 return 1;

}

bool fun12(PP a[][100],int num)

{

 for(int i=0;i<num;i++)

  for(int
j=0;j<num;j++)

   if(ans[num-1-i][num-1-j].a!=a[i][j].a)
return 0;

 return 1;

}

bool fun13(PP a[][100],int num)

{

 for(int i=0;i<num;i++)

  for(int
j=0;j<num;j++)

   if(ans[num-1-i][i].a!=a[i][j].a)
return 0;

 return 1;

}

bool fun2(PP a[][100],int num)

{

 for(int i=0;i<num;i++)

  for(int
j=0;j<num;j++)

   if(ans[i][num-1-j].a!=a[i][j].a)
return 0;

 return 1;

}

bool ifsame(PP a[][100],int n,PP c[][100])

{

 int i,j;

 for(i=0;i<n;i++)

  for(j=0;j<n;j++)

   if(c[i][j].a!=a[i][j].a)

    return
0;

 return 1;

}

bool fun3(PP a[][100],int num)

{

 PP c[100][100];

 for(int i=0;i<num;i++)

  for(int
j=0;j<num;j++)

   c[i][j]=a[i][num-1-j];

 for(int i=0;i<num;i++)

  for(int
j=0;j<num;j++)

 if(fun12(c,num)==1 ||fun11(c,num)==1
||fun13(c,num)==1)

  return 1;

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: