标签:
A square pattern of size N x N (1 <= N <= 10) black and white square tiles is transformed into another square pattern. Write a program that will recognize the minimum transformation that has been applied to the original pattern given the following list of possible transformations:
In the case that more than one transform could have been used, choose the one with the minimum number above.
PROGRAM NAME: transform
INPUT FORMAT
Line 1: |
A single integer, N |
Line 2..N+1: |
N lines of N characters (each either `@‘ or `-‘); this is the square before transformation |
Line N+2..2*N+1: |
N lines of N characters (each either `@‘ or `-‘); this is the square after transformation |
SAMPLE INPUT (file transform.in)
3
@-@
---
@@-
@-@
@--
--@
OUTPUT FORMAT
A single line containing the the number from 1 through 7 (described above) that categorizes the transformation required to change from the `before‘ representation to the `after‘ representation.
SAMPLE OUTPUT (file transform.out)
1
代码:
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 int main() 7 { 8 freopen("transform.in","r",stdin); 9 freopen("transform.out","w",stdout); 10 int n; 11 char a[11][11],b[11][11],c; 12 bool mar[10]; 13 memset(mar,true,sizeof(mar)); 14 cin>>n; 15 getchar(); 16 for(int i=1;i<=n;i++){ 17 for(int j=1;j<=n;j++){ 18 cin>>a[i][j]; 19 b[i][n+1-j]=a[i][j]; 20 } 21 getchar(); 22 } 23 for(int i=1;i<=n;i++){ 24 for(int j=1;j<=n;j++){ 25 cin>>c; 26 if(c!=a[n+1-j][i]) mar[1]=false;//90 27 if(c!=a[n+1-i][n+1-j]) mar[2]=false;//180 28 if(c!=a[j][n+1-i]) mar[3]=false;//270 29 if(c!=b[i][j]) mar[4]=false;//水平翻转 30 if(c!=b[n+1-j][i]) mar[5]=false;//水平翻转+90 31 if(c!=b[n+1-i][n+1-j]) mar[6]=false;//水平翻转+180 32 if(c!=b[j][n+1-i]) mar[7]=false;//水平翻转+270 33 if(c!=a[i][j]) mar[8]=false;//不改变 34 } 35 getchar(); 36 } 37 int f=0; 38 for(int i=1;i<=4;i++){ 39 if(mar[i]&&!f) {f=1;cout<<i<<endl;} 40 } 41 if((mar[5]||mar[6]||mar[7])&&!f) {f=1;cout<<5<<endl;} 42 if(mar[8]&&!f) {f=1;cout<<6<<endl;} 43 if(!f) cout<<7<<endl; 44 return 0; 45 }
标签:
原文地址:http://www.cnblogs.com/shenyw/p/5156045.html