标签:处理 i++ out upload 技术 cst turn ash https
常神牛从来没接触过魔方,所以他要借助计算机来玩。即使是这样,他还是很菜。
常神牛家的魔方都是3*3*3的三阶魔方,大家都见过。
(更正:3 4以图为准。)
作为一名菜鸟,常神牛从网上搜了一篇攻略,并找人翻译成了他自己会做的方法。现在告诉你他的魔方情况,以及他从网上搜到的攻略,请你求出最后魔方变成什么样子。
输入格式:
输入文件为cube.out。
第一行,一串数字(长度不大于100),表示常神牛从网上搜到的攻略。
下面6*3行,每行3个数字,每三行表示魔方一个面的情况,六个面的顺序是前、后、左、右、上、下。
输出格式:
输出文件为cube.out。
6*3行,表示处理后的魔方,形式同输入。
23 121 221 111 123 321 111 123 321 132 132 231 132 121 112 233 332 111 333
123 222 113 212 321 113 122 321 132 121 333 121 211 312 113 331 111 331
【样例解释】
我感觉这个题要多恶心有多恶心。
反正就是很恶心!!
看看代码吧(来,恶心一下)
#include<iostream> #include<cstdio> using namespace std; int a[7][4][4],b[4][4],t[4]; void cwface(int k) { for(int i=1;i<=3;i++) for(int j=1;j<=3;j++) b[i][j]=a[k][i][j]; for(int i=1;i<=3;i++) for(int j=1;j<=3;j++) a[k][i][j]=b[4-j][i]; } void rt() { for(int i=1;i<=3;i++)t[i]=a[1][i][3]; for(int i=1;i<=3;i++)a[1][i][3]=a[6][i][3]; for(int i=1;i<=3;i++)a[6][i][3]=a[2][i][3]; for(int i=1;i<=3;i++)a[2][i][3]=a[5][i][3]; for(int i=1;i<=3;i++)a[5][i][3]=t[i]; } void up() { for(int i=1;i<=3;i++)t[i]=a[1][1][i]; for(int i=1;i<=3;i++)a[1][1][i]=a[3][1][i]; for(int i=1;i<=3;i++)a[3][1][i]=a[2][1][i]; for(int i=1;i<=3;i++)a[2][1][i]=a[4][1][i]; for(int i=1;i<=3;i++)a[4][1][i]=t[i]; } void doit(int k) { if(k==1){cwface(4);rt();} if(k==2){for(int i=1;i<=3;i++)cwface(4);for(int i=1;i<=3;i++)rt();} if(k==3){cwface(5);up();} if(k==4){for(int i=1;i<=3;i++)cwface(5);for(int i=1;i<=3;i++)up();} } int main() { string str1,str2;cin>>str1; for(int i=1;i<=6;i++) for(int j=1;j<=3;j++) { cin>>str2; for(int k=0;k<3;k++) a[i][j][k+1]=str2[k]-‘0‘; } for(int i=0;i<str1.length();i++) { doit(str1[i]-‘0‘); } for(int i=1;i<=6;i++) for(int j=1;j<=3;j++) { for(int k=1;k<=3;k++) printf("%d",a[i][j][k]); printf("\n"); } return 0; }
标签:处理 i++ out upload 技术 cst turn ash https
原文地址:http://www.cnblogs.com/z360/p/6914245.html