usaco Transform

/*
ID:usaco_t2
LANG:C++
TASK:transform
*/
#include<stdio.h>
char a[11][11],b[11][11],fz[11][11],fz1[11][11],fz2[11][11],ff[11][11];
int n,i,j,ans=0; 
void f7()
{   printf("7\n");
}
void f6()
{   for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)if(a[i][j]!=b[i][j]){f7();return;}
   	printf("6\n");
}
void f5()
{   for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)fz[i][j]=a[i][n-j+1];
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)
    	    ff[j][n-i+1]=fz[i][j];
    for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)if(ff[i][j]!=b[i][j])ans=1;
   	if(ans==0){printf("5\n");return;}ans=0;
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)fz1[i][j]=fz[n-i+1][j];
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)ff[i][j]=fz1[i][n-j+1];
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)if(ff[i][j]!=b[i][j])ans=1;
   	if(ans==0){printf("5\n");return;}ans=0;
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)fz1[j][n-i+1]=fz[i][j];
    for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)fz2[i][j]=fz1[n-i+1][j];
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)ff[i][j]=fz2[i][n-j+1];
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)if(ff[i][j]!=b[i][j])ans=1;
   	if(ans==0){printf("5\n");return;}f6();
}
void f4()
{   for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)ff[i][j]=a[i][n-j+1];
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)if(ff[i][j]!=b[i][j]){f5();return;}
   	printf("4\n");
}
void f3()
{   for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)fz[j][n-i+1]=a[i][j];
    for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)fz1[i][j]=fz[n-i+1][j];
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)ff[i][j]=fz1[i][n-j+1];
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)if(ff[i][j]!=b[i][j]){f4();return;}
   	printf("3\n");
}
void f2()
{   for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)fz[i][j]=a[n-i+1][j];
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)ff[i][j]=fz[i][n-j+1];
   	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)if(ff[i][j]!=b[i][j]){f3();return;}
   	printf("2\n");
}
void f1()
{   for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)
    	    ff[j][n-i+1]=a[i][j];
    for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)if(ff[i][j]!=b[i][j]){f2();return;}
    printf("1\n");
}
int main()
{   int m,i,j,l,k,x,y;
    freopen("transform.in","r",stdin);
    freopen("transform.out","w",stdout);
    scanf("%d%c",&n,&a[1][1]);
	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)if(j==n)scanf("%c%c",&a[i][j],&a[i][j+1]);else scanf("%c",&a[i][j]);
	for(i=1;i<=n;i++)
   		for(j=1;j<=n;j++)if(j==n)scanf("%c%c",&b[i][j],&b[i][j+1]);else scanf("%c",&b[i][j]);
   	f1();
   	
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值