Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
打的累死人#include <iostream> #include <stdio.h> #include <vector> using namespace std; char cube[7][3][3]; vector<int> moves; void init(){ moves.clear(); for(int i = 0; i < 3; i++) for(int j = 0; j < 3; j++) cin >> cube[5][i][j]; for(int i = 0; i < 3; i++) for(int j = 1; j < 5; j++) for(int k = 0; k < 3; k++) cin >> cube[j][i][k]; for(int i = 0; i < 3; i++) for(int j = 0; j < 3; j++) cin >> cube[6][i][j]; while(1){ int move; cin >> move; if(move == 0) break; moves.push_back(move); } } void swap(char &c1, char &c2, char &c3, char &c4){ char temp = c1; c1 = c4; c4 = c3; c3 = c2; c2 = temp; } void Move(int move){ if(move == 1){ swap(cube[1][0][0], cube[1][0][2], cube[1][2][2], cube[1][2][0]); swap(cube[1][0][1], cube[1][1][2], cube[1][2][1], cube[1][1][0]); swap(cube[5][0][0], cube[2][0][0], cube[6][0][0], cube[4][2][2]); swap(cube[5][1][0], cube[2][1][0], cube[6][1][0], cube[4][1][2]); swap(cube[5][2][0], cube[2][2][0], cube[6][2][0], cube[4][0][2]); } else if(move == 2){ swap(cube[2][0][0], cube[2][0][2], cube[2][2][2], cube[2][2][0]); swap(cube[2][0][1], cube[2][1][2], cube[2][2][1], cube[2][1][0]); swap(cube[1][0][2], cube[5][2][2], cube[3][2][0], cube[6][0][0]); swap(cube[1][1][2], cube[5][2][1], cube[3][1][0], cube[6][0][1]); swap(cube[1][2][2], cube[5][2][0], cube[3][0][0], cube[6][0][2]); } else if(move == 3){ swap(cube[3][0][0], cube[3][0][2], cube[3][2][2], cube[3][2][0]); swap(cube[3][0][1], cube[3][1][2], cube[3][2][1], cube[3][1][0]); swap(cube[2][2][2], cube[5][2][2], cube[4][0][0], cube[6][2][2]); swap(cube[2][1][2], cube[5][1][2], cube[4][1][0], cube[6][1][2]); swap(cube[2][0][2], cube[5][0][2], cube[4][2][0], cube[6][0][2]); } else if(move == 4){ swap(cube[4][0][0], cube[4][0][2], cube[4][2][2], cube[4][2][0]); swap(cube[4][0][1], cube[4][1][2], cube[4][2][1], cube[4][1][0]); swap(cube[3][2][2], cube[5][0][2], cube[1][0][0], cube[6][2][0]); swap(cube[3][1][2], cube[5][0][1], cube[1][1][0], cube[6][2][1]); swap(cube[3][0][2], cube[5][0][0], cube[1][2][0], cube[6][2][2]); } else if(move == 5){ swap(cube[5][0][0], cube[5][0][2], cube[5][2][2], cube[5][2][0]); swap(cube[5][0][1], cube[5][1][2], cube[5][2][1], cube[5][1][0]); swap(cube[1][0][0], cube[4][0][0], cube[3][0][0], cube[2][0][0]); swap(cube[1][0][1], cube[4][0][1], cube[3][0][1], cube[2][0][1]); swap(cube[1][0][2], cube[4][0][2], cube[3][0][2], cube[2][0][2]); } else if(move == 6){ swap(cube[6][0][0], cube[6][0][2], cube[6][2][2], cube[6][2][0]); swap(cube[6][0][1], cube[6][1][2], cube[6][2][1], cube[6][1][0]); swap(cube[1][2][0], cube[2][2][0], cube[3][2][0], cube[4][2][0]); swap(cube[1][2][1], cube[2][2][1], cube[3][2][1], cube[4][2][1]); swap(cube[1][2][2], cube[2][2][2], cube[3][2][2], cube[4][2][2]); } else{ for(int i = 0; i < 3; i++) Move(-move); } } int main() { int cases; cin >> cases; for(int ii = 0; ii < cases; ii++){ init(); int sz = moves.size(); for(int i = 0; i < sz; i++){ Move(moves[i]); } bool win = 1; for(int i = 1; i < 7; i++){ char coal = cube[i][0][0]; for(int j = 0; j < 3; j++){ for(int k = 0; k < 3; k++){ if(cube[i][j][k] != coal){ win = 0; goto done; } } } } done: if(win) printf("Yes, grandpa!\n"); else printf("No, you are wrong!\n"); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator