0分求助
  • 板块P2007 魔方
  • 楼主I_never_left
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/12/28 19:47
  • 上次更新2023/10/24 06:17:43
查看原帖
0分求助
445650
I_never_left楼主2022/12/28 19:47

样例上面错误。

#include <cmath>
#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef unsigned long long ll;
string s;
int a[7][4][4], b[7][4][4];
bool check(int x) {
	if(s[x] == '1' && s[x - 1] == '2') return 1;
	if(s[x] == '2' && s[x - 1] == '1') return 1;
	if(s[x] == '3' && s[x - 1] == '4') return 1;
	if(s[x] == '4' && s[x - 1] == '3') return 1;
}
void m1() {
	b[5][1][3] = a[1][1][3];
	b[5][2][3] = a[1][2][3];
	b[5][3][3] = a[1][3][3];
	b[2][1][3] = a[5][1][3];
	b[2][2][3] = a[5][2][3];
	b[2][3][3] = a[5][3][3];
	b[6][1][3] = a[2][1][3];
	b[6][2][3] = a[2][2][3];
	b[6][3][3] = a[2][3][3];
	b[1][1][3] = a[6][1][3];
	b[1][2][3] = a[6][2][3];
	b[1][3][3] = a[6][3][3];
	a[5][1][3] = b[5][1][3];
	a[5][2][3] = b[5][2][3];
	a[5][3][3] = b[5][3][3];
	a[2][1][3] = b[2][1][3];
	a[2][2][3] = b[2][2][3];
	a[2][3][3] = b[2][3][3];
	a[6][1][3] = b[6][1][3];
	a[6][2][3] = b[6][2][3];
	a[6][3][3] = b[6][3][3];
	a[1][1][3] = b[1][1][3];
	a[1][2][3] = b[1][2][3];
	a[1][3][3] = b[1][3][3];
	
	b[4][1][1] = a[4][3][1];
	b[4][1][2] = a[4][2][1];
	b[4][1][3] = a[4][1][1];
	b[4][2][1] = a[4][3][2];
	b[4][2][3] = a[4][1][2];
	b[4][3][1] = a[4][3][3];
	b[4][3][2] = a[4][2][3];
	b[4][3][3] = a[4][1][3];
	a[4][1][1] = b[4][1][1];
	a[4][1][2] = b[4][1][2];
	a[4][1][3] = b[4][1][3];
	a[4][2][1] = b[4][2][1];
	a[4][2][3] = b[4][2][3];
	a[4][3][1] = b[4][3][1];
	a[4][3][2] = b[4][3][2];
	a[4][3][3] = b[4][3][3];
}
void m2() {
	b[5][1][3] = a[2][1][3];
	b[5][2][3] = a[2][2][3];
	b[5][3][3] = a[2][3][3];
	b[2][1][3] = a[6][1][3];
	b[2][2][3] = a[6][2][3];
	b[2][3][3] = a[6][3][3];
	b[6][1][3] = a[1][1][3];
	b[6][2][3] = a[1][2][3];
	b[6][3][3] = a[1][3][3];
	b[1][1][3] = a[5][1][3];
	b[1][2][3] = a[5][2][3];
	b[1][3][3] = a[5][3][3];
	a[5][1][3] = b[5][1][3];
	a[5][2][3] = b[5][2][3];
	a[5][3][3] = b[5][3][3];
	a[2][1][3] = b[2][1][3];
	a[2][2][3] = b[2][2][3];
	a[2][3][3] = b[2][3][3];
	a[6][1][3] = b[6][1][3];
	a[6][2][3] = b[6][2][3];
	a[6][3][3] = b[6][3][3];
	a[1][1][3] = b[1][1][3];
	a[1][2][3] = b[1][2][3];
	a[1][3][3] = b[1][3][3];
	
	b[4][3][1] = a[4][1][1];
	b[4][2][1] = a[4][1][2];
	b[4][1][1] = a[4][1][3];
	b[4][3][2] = a[4][2][1];
	b[4][1][2] = a[4][2][3];
	b[4][3][3] = a[4][3][1];
	b[4][2][3] = a[4][3][2];
	b[4][1][3] = a[4][3][3];
	a[4][3][1] = b[4][3][1];
	a[4][2][1] = b[4][2][1];
	a[4][1][1] = b[4][1][1];
	a[4][3][2] = b[4][3][2];
	a[4][1][2] = b[4][1][2];
	a[4][3][3] = b[4][3][3];
	a[4][2][3] = b[4][2][3];
	a[4][1][3] = b[4][1][3];
}
void m3() {
	b[1][1][1] = a[3][1][1];
	b[1][1][2] = a[3][1][2];
	b[1][1][3] = a[3][1][3];
	b[4][1][1] = a[1][1][1];
	b[4][1][2] = a[1][1][2];
	b[4][1][3] = a[1][1][3];
	b[2][1][1] = a[4][1][1];
	b[2][1][2] = a[4][1][2];
	b[2][1][3] = a[4][1][3];
	b[3][1][1] = a[2][1][1];
	b[3][1][2] = a[2][1][2];
	b[3][1][3] = a[2][1][3];
	a[3][1][1] = b[3][1][1];
	a[3][1][2] = b[3][1][2];
	a[3][1][3] = b[3][1][3];
	a[1][1][1] = b[1][1][1];
	a[1][1][2] = b[1][1][2];
	a[1][1][3] = b[1][1][3];
	a[4][1][1] = b[4][1][1];
	a[4][1][2] = b[4][1][2];
	a[4][1][3] = b[4][1][3];
	a[2][1][1] = b[2][1][1];
	a[2][1][2] = b[2][1][2];
	a[2][1][3] = b[2][1][3];
	
	b[5][3][1] = a[5][1][1];
	b[5][2][1] = a[5][1][2];
	b[5][1][1] = a[5][1][3];
	b[5][3][2] = a[5][2][1];
	b[5][1][2] = a[5][2][3];
	b[5][3][3] = a[5][3][1];
	b[5][2][3] = a[5][3][2];
	b[5][1][3] = a[5][3][3];
	a[5][3][1] = b[5][3][1];
	a[5][2][1] = b[5][2][1];
	a[5][1][1] = b[5][1][1];
	a[5][3][2] = b[5][3][2];
	a[5][1][2] = b[5][1][2];
	a[5][3][3] = b[5][3][3];
	a[5][2][3] = b[5][2][3];
	a[5][1][3] = b[5][1][3];
}
void m4() {
	b[1][1][1] = a[4][1][1];
	b[1][1][2] = a[4][1][2];
	b[1][1][3] = a[4][1][3];
	b[4][1][1] = a[2][1][1];
	b[4][1][2] = a[2][1][2];
	b[4][1][3] = a[2][1][3];
	b[2][1][1] = a[3][1][1];
	b[2][1][2] = a[3][1][2];
	b[2][1][3] = a[3][1][3];
	b[3][1][1] = a[1][1][1];
	b[3][1][2] = a[1][1][2];
	b[3][1][3] = a[1][1][3];
	a[3][1][1] = b[3][1][1];
	a[3][1][2] = b[3][1][2];
	a[3][1][3] = b[3][1][3];
	a[1][1][1] = b[1][1][1];
	a[1][1][2] = b[1][1][2];
	a[1][1][3] = b[1][1][3];
	a[4][1][1] = b[4][1][1];
	a[4][1][2] = b[4][1][2];
	a[4][1][3] = b[4][1][3];
	a[2][1][1] = b[2][1][1];
	a[2][1][2] = b[2][1][2];
	a[2][1][3] = b[2][1][3];
	
	b[5][3][1] = a[5][1][1];
	b[5][2][1] = a[5][1][2];
	b[5][1][1] = a[5][1][3];
	b[5][3][2] = a[5][2][1];
	b[5][1][2] = a[5][2][3];
	b[5][3][3] = a[5][3][1];
	b[5][2][3] = a[5][3][2];
	b[5][1][3] = a[5][3][3];
	a[5][3][1] = b[5][3][1];
	a[5][2][1] = b[5][2][1];
	a[5][1][1] = b[5][1][1];
	a[5][3][2] = b[5][3][2];
	a[5][1][2] = b[5][1][2];
	a[5][3][3] = b[5][3][3];
	a[5][2][3] = b[5][2][3];
	a[5][1][3] = b[5][1][3];
}
int main() {
	cin >> s;
	getchar();
	for(int i = 1; i <= 6; ++ i)
		for(int j = 1; j <= 3; ++ j) {
			for(int k = 1; k <= 3; ++ k)
				a[i][j][k] = getchar() - '0';
			getchar();
		}
	int len = s.size();
	for(int i = 0; i < len; ++ i) {
		if(i != 0 && check(i)) continue;
		if(s[i] == '1') m1();
 		if(s[i] == '2') m2();
  	  	if(s[i] == '3') m3();
		if(s[i] == '4') m4();
	}
	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]);
			putchar('\n');
		}
	return 0;
}
2022/12/28 19:47
加载中...