标签:its master acm class ash written cas space bottom
1 #include<bits/stdc++.h> 2 using namespace std; 3 /* 4 方块旋转,两个矩形,如果能够通过旋转使两个一样则输出 possible 5 否则则输出impossible 6 */ 7 int A[5][5],B[5][5]; //矩阵A,矩阵B 8 //判断现两个矩形是否一样 9 bool Judge() 10 { 11 for(int i = 0; i < 2; i++) 12 for(int j = 0; j < 2; j++) 13 if(A[i][j] != B[i][j]) 14 return false; 15 return true; 16 } 17 //将一个矩形进行旋转,顺时针旋转, 18 //破点:将[0][0]先后进行向左、斜方向、向下交换 19 void Swap() 20 { 21 swap(A[0][0],A[0][1]); 22 swap(A[0][0],A[1][1]); 23 swap(A[0][0],A[1][0]); 24 } 25 //通过旋转四次进行判定是否满足题意 26 bool Solve() 27 { 28 for(int i = 0; i < 4; i++) 29 { 30 if(Judge()) 31 return true; 32 else 33 Swap(); 34 } 35 return false; 36 } 37 38 int main() 39 { 40 int T,n; 41 while(~scanf("%d",&T)) 42 { 43 for(int p= 1; p <= T; p++) 44 { 45 46 scanf("%d %d %d %d",&A[0][0],&A[0][1],&A[1][0],&A[1][1]); 47 scanf("%d %d %d %d",&B[0][0],&B[0][1],&B[1][0],&B[1][1]); 48 printf("Case #%d: ",p); 49 if(Solve()) 50 { 51 printf("POSSIBLE\n"); 52 } 53 else 54 { 55 printf("IMPOSSIBLE\n"); 56 } 57 58 59 } 60 } 61 return 0; 62 }
标签:its master acm class ash written cas space bottom
原文地址:http://www.cnblogs.com/jj81/p/7636885.html