CodeForces 645 A.Amity Assessment(水~)

来源:互联网 发布:美容院调整型内衣 知乎 编辑:程序博客网 时间:2024/06/03 15:32

Description
给出两个2*2的数码,问第一个是否可以通过适当转化变成第二个
Input
给出两个2*2矩阵表示这两个数码,X表示该处为空
Output
如果可以互相转化则输出YES,否则输出NO
Sample Input
AB
XC
XB
AC
Sample Output
YES
Solution
两个数码可以相互转化当且仅当在不考虑X的时候旋转同构,故判一下ABC的相对位置是否相同即可
Code

#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<map>#include<set>#include<ctime>using namespace std;char a[11],b[11],c[11],d[11];int main(){    while(~scanf("%s%s%s%s",a,b,c,d))    {        a[2]=b[1],a[3]=b[0],c[2]=d[1],c[3]=d[0];        int i=0,j=0,flag=1;        while(a[i]!='A')i++;        while(c[j]!='A')j++;        for(int k=0;k<4;k++,i=(i+1)%4,j=(j+1)%4)        {            if(a[i]=='X')i=(i+1)%4;            if(c[j]=='X')j=(j+1)%4;            if(a[i]!=c[j])flag=0;        }        printf("%s\n",flag?"YES":"NO");    }    return 0;}
0 0