码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 253

时间:2015-02-03 13:24:10      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:cspan idtransmarkspa   uspan idtransmarkspa   

背景:一次编译通过加一次ac就是这么爽!!!!!!

思路:枚举六个面朝上,每种情况旋转4次的所有情况,一共24种,全部枚举出来比较即可!这里比较巧妙的是把每一种情况都写作一个长度为6的字符串,并在第七位加一个‘\0

‘,这样就可以用strcmp来比较了。


#include<stdio.h>
#include<string.h>
int main(void){
    char l[7],r[7],temp[13];
l1: while(~scanf("%s",temp)){
        for(int i=0;i < 12;i++){
            if(i <6) l[i]=temp[i];
            else r[i-6]=temp[i];
        }
        l[6]=r[6]='\0';
        temp[0]=r[0];temp[1]=r[1];temp[5]=r[5];temp[4]=r[4];temp[2]=r[2];temp[3]=r[3];temp[6]='\0';
        for(int i=0;i < 4;i++){
            if(strcmp(l,temp) == 0){
                printf("TRUE\n");
                goto l1;
            }
            char c=temp[1];
            temp[1]=temp[2];temp[2]=temp[4];temp[4]=temp[3];temp[3]=c;
        }
        temp[0]=r[1];temp[1]=r[5];temp[5]=r[4];temp[4]=r[0];temp[2]=r[2];temp[3]=r[3];temp[6]='\0';
        for(int i=0;i < 4;i++){
            if(strcmp(l,temp) == 0){
                printf("TRUE\n");
                goto l1;
            }
            char c=temp[1];
            temp[1]=temp[2];temp[2]=temp[4];temp[4]=temp[3];temp[3]=c;
        }
        temp[0]=r[5];temp[1]=r[4];temp[5]=r[0];temp[4]=r[1];temp[2]=r[2];temp[3]=r[3];temp[6]='\0';
        for(int i=0;i < 4;i++){
            if(strcmp(l,temp) == 0){
                printf("TRUE\n");
                goto l1;
            }
            char c=temp[1];
            temp[1]=temp[2];temp[2]=temp[4];temp[4]=temp[3];temp[3]=c;
        }
        temp[0]=r[4];temp[1]=r[0];temp[5]=r[1];temp[4]=r[5];temp[2]=r[2];temp[3]=r[3];temp[6]='\0';
        for(int i=0;i < 4;i++){
            if(strcmp(l,temp) == 0){
                printf("TRUE\n");
                goto l1;
            }
            char c=temp[1];
            temp[1]=temp[2];temp[2]=temp[4];temp[4]=temp[3];temp[3]=c;
        }

        //two
        temp[0]=r[2];temp[1]=r[1];temp[2]=r[5];temp[3]=r[0];temp[4]=r[4];temp[5]=r[3];temp[6]='\0';
        for(int i=0;i < 4;i++){
            if(strcmp(l,temp) == 0){
                printf("TRUE\n");
                goto l1;
            }
            char c=temp[1];
            temp[1]=temp[2];temp[2]=temp[4];temp[4]=temp[3];temp[3]=c;
        }
        temp[0]=r[3];temp[1]=r[1];temp[2]=r[0];temp[3]=r[5];temp[4]=r[4];temp[5]=r[2];temp[6]='\0';
        for(int i=0;i < 4;i++){
            if(strcmp(l,temp) == 0){
                printf("TRUE\n");
                goto l1;
            }
            char c=temp[1];
            temp[1]=temp[2];temp[2]=temp[4];temp[4]=temp[3];temp[3]=c;
        }
        printf("FALSE\n");
    }
    return 0;
}

UVa 253

标签:cspan idtransmarkspa   uspan idtransmarkspa   

原文地址:http://blog.csdn.net/jibancanyang/article/details/43372923

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!