zoukankan      html  css  js  c++  java
  • USACO section1.2 Transformation

      1 /*
      2 ID: vincent63
      3 LANG: C
      4 TASK: transform
      5 */
      6 #include <stdio.h>
      7 #include<stdlib.h>
      8 #include<string.h>
      9 static char a[10][10];
     10 static char b[10][10];
     11 static char temp[10][10];
     12 static char temp2[10][10];
     13 static int n;
     14 //return 1 if can be done; 
     15 //return 0,if cant be done;
     16 //90
     17 int first_tran(){
     18     int ret=1;
     19     int i,j;
     20           
     21     for(i=0;i<n;i++){
     22         for(j=0;j<n;j++){
     23             temp2[j][n-1-i]=temp[i][j];
     24             if(a[i][j]!=b[j][n-1-i]){
     25                 ret=0;
     26                 //printf("not match (%d,%d) %c (%d,%d) %c
    ",i,j,a[i][j],j,n-1-i,b[j][n-i]);
     27             }
     28         }
     29     }    
     30     return ret;
     31 }
     32 //180
     33 int second_tran(){
     34     int ret=1;
     35     int i,j;
     36           
     37     for(i=0;i<n;i++){
     38         for(j=0;j<n;j++){
     39             temp2[n-1-i][n-1-j]=temp[i][j];
     40             if(a[i][j]!=b[n-1-i][n-1-j]){
     41                 ret=0;
     42                 //printf("not match (%d,%d) %c (%d,%d) %c
    ",i,j,a[i][j],n-1-i,n-1-j,b[n-1-i][n-1-j]);
     43             }
     44         }
     45     }    
     46     return ret;
     47 }
     48 //270
     49 int third_tran(){
     50     int ret=1;
     51     int i,j;
     52           
     53     for(i=0;i<n;i++){
     54         for(j=0;j<n;j++){
     55             temp2[n-1-j][i]=temp[i][j];
     56             if(a[i][j]!=b[n-1-j][i]){
     57                 ret=0;
     58                 //printf("not match (%d,%d) %c (%d,%d) %c
    ",i,j,a[i][j],n-1-j,i,b[n-1-j][i]);
     59             }
     60         }
     61     }    
     62     return ret;
     63 }
     64 
     65 //mirror
     66 int fouth_tran(){
     67     int ret=1;
     68     int i,j;
     69           
     70     for(i=0;i<n;i++){
     71         for(j=0;j<n;j++){
     72             temp[i][n-1-j]=a[i][j];
     73             if(a[i][j]!=b[i][n-1-j]){
     74                 ret=0;
     75                 //printf("not match (%d,%d) %c (%d,%d) %c
    ",i,j,a[i][j],i,n-1-j,b[i][n-1-j]);
     76             }
     77         }
     78     }    
     79     return ret;
     80 }
     81 int is_equal(){
     82     int ret=1;
     83     int i,j;
     84           
     85     for(i=0;i<n;i++){
     86         for(j=0;j<n;j++){
     87             if(temp2[i][j]!=b[i][j]){
     88                 ret=0;
     89                 //printf("not match (%d,%d) %c (%d,%d) %c
    ",i,j,a[i][j],i,j,b[i][j]);
     90             }
     91         }
     92     }    
     93     return ret;
     94 }
     95 //combine
     96 int fifth_tran(){
     97     int i,j;
     98     fouth_tran();
     99     first_tran();
    100     if(is_equal()){
    101         return 1;
    102     }
    103     
    104     printf("
    ");
    105     for(i=0;i<n;i++){
    106           for(j=0;j<n;j++){
    107             printf("%c",temp2[i][j]);
    108         }
    109         printf("
    ");            
    110     }
    111     
    112     fouth_tran();
    113     second_tran();
    114     if(is_equal()){
    115         return 1;
    116     }
    117     printf("
    ");
    118     for(i=0;i<n;i++){
    119         for(j=0;j<n;j++){
    120             printf("%c",temp2[i][j]);
    121         }
    122         printf("
    ");            
    123     }
    124     
    125     fouth_tran();
    126     third_tran();
    127     if(is_equal()){
    128         return 1;
    129     }
    130     printf("
    ");
    131     for(i=0;i<n;i++){
    132         for(j=0;j<n;j++){
    133             printf("%c",temp2[i][j]);
    134         }
    135         printf("
    ");            
    136     }
    137     
    138     return 0;    
    139 }
    140 //no change
    141 int sixth_tran(){
    142     int ret=1;
    143     int i,j;
    144           
    145     for(i=0;i<n;i++){
    146         for(j=0;j<n;j++){
    147             if(a[i][j]!=b[i][j]){
    148                 ret=0;
    149                 //printf("not match (%d,%d) %c (%d,%d) %c
    ",i,j,a[i][j],i,j,b[i][j]);
    150             }
    151         }
    152     }    
    153     return ret;
    154 }
    155 int test_tran(){
    156     if(first_tran()){
    157         return 1;
    158     }else if(second_tran()){
    159         return 2;
    160     }else if(third_tran()){
    161         return 3;
    162     }else if(fouth_tran()){
    163         return 4;
    164     }else if(fifth_tran()){
    165         return 5;
    166     }else if(sixth_tran()){
    167         return 6;
    168     }
    169     return 7;
    170 }
    171 
    172 int main () {
    173     FILE *fin  = fopen ("transform.in", "r");
    174     FILE *fout = fopen ("transform.out", "w");
    175     
    176     int i,j,ret;
    177     char buf[10];
    178     char buf2[20];
    179     
    180     fgets(buf,10,fin);
    181     n=atoi(buf); 
    182        
    183     for(i=0;i<n;i++){        
    184         fgets(buf2,20,fin);
    185         strcpy(a[i],buf2);            
    186     }
    187     for(i=0;i<n;i++){      
    188         fgets(buf2,20,fin);
    189         strcpy(b[i],buf2);        
    190     }
    191     
    192     for(i=0;i<n;i++){
    193         for(j=0;j<n;j++){
    194             printf("%c",a[i][j]);
    195         }
    196         printf("
    ");            
    197     }
    198     for(i=0;i<n;i++){
    199         for(j=0;j<n;j++){
    200             printf("%c",b[i][j]);
    201         }
    202         printf("
    ");            
    203     }
    204     
    205     ret=test_tran();
    206     
    207     char res[10];
    208     sprintf(res,"%d
    ",ret);
    209     fputs(res,fout);
    210     printf("%d",ret);
    211     return 0;
    212 }
  • 相关阅读:
    ios7.0结合storyborad实现页面跳转的总结
    ios上取得设备唯一标志的解决方案
    【iOS】Objective-C简约而不简单的单例模式
    ios应用启动后的自动版本检测方式
    linux安装常用软件和查询基本信息
    配置本地yum仓库
    RedHat 6.5 上将系统语言修改为中文
    RedHat7.4配置yum网络源
    linux环境中,两个不同网段的机器互通
    redhat 配置eth0网卡
  • 原文地址:https://www.cnblogs.com/houshengtao/p/6102819.html
Copyright © 2011-2022 走看看