


题目大意:将第二个骰子旋转,判断是否能与第一个骰子各面颜色完全相同。
思路:将1号位固定,共有6种可能,且此时6号位也已固定;再将2号位固定,有4种可能,此时剩下的面颜色都已固定;所以一共有24种可能。
#include<stdio.h>
#include<string.h>
int main(){
char s[15],a[7],b[7],c[7];
int d[6][6]={{0,1,2,3,4,5},{1,5,2,3,0,4},{2,1,5,0,4,3},{3,1,0,5,4,2},{4,0,2,3,5,1},{5,4,2,3,1,0} };
int o;
while(scanf("%s",s)!=EOF){
o=0;
for(int i=0;i<6;i++){
a[i]=s[i];
b[i]=s[i+6];
}
a[6]=b[6]='\0';
//printf("%s %s\n",a,b);
for(int i=0;i<6;i++){
for(int j=0;j<6;j++)
c[j]=b[d[i][j]];
c[6]='\0';
if(strcmp(a,c)==0){
o=1;
break;
}
if(a[0]!=c[0]||a[5]!=c[5])
continue;
//puts(c);
for(int j=0;j<3;j++){ //变化中间四种颜色
char q=c[1];
c[1]=c[2]; c[2]=c[4];
c[4]=c[3]; c[3]=q;
if(strcmp(c,a)==0){
o=1;
break;
}
}
if(o) break;
}
if(o)
printf("TRUE\n");
else
printf("FALSE\n");
}
return 0;
}