/*
ID: vincent63
LANG: C
TASK: transform
*/
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
static char a[][];
static char b[][];
static char temp[][];
static char temp2[][];
static int n;
//return 1 if can be done;
//return 0,if cant be done;
//
int first_tran(){
int ret=;
int i,j; for(i=;i<n;i++){
for(j=;j<n;j++){
temp2[j][n--i]=temp[i][j];
if(a[i][j]!=b[j][n--i]){
ret=;
//printf("not match (%d,%d) %c (%d,%d) %c\n",i,j,a[i][j],j,n-1-i,b[j][n-i]);
}
}
}
return ret;
}
//
int second_tran(){
int ret=;
int i,j; for(i=;i<n;i++){
for(j=;j<n;j++){
temp2[n--i][n--j]=temp[i][j];
if(a[i][j]!=b[n--i][n--j]){
ret=;
//printf("not match (%d,%d) %c (%d,%d) %c\n",i,j,a[i][j],n-1-i,n-1-j,b[n-1-i][n-1-j]);
}
}
}
return ret;
}
//
int third_tran(){
int ret=;
int i,j; for(i=;i<n;i++){
for(j=;j<n;j++){
temp2[n--j][i]=temp[i][j];
if(a[i][j]!=b[n--j][i]){
ret=;
//printf("not match (%d,%d) %c (%d,%d) %c\n",i,j,a[i][j],n-1-j,i,b[n-1-j][i]);
}
}
}
return ret;
} //mirror
int fouth_tran(){
int ret=;
int i,j; for(i=;i<n;i++){
for(j=;j<n;j++){
temp[i][n--j]=a[i][j];
if(a[i][j]!=b[i][n--j]){
ret=;
//printf("not match (%d,%d) %c (%d,%d) %c\n",i,j,a[i][j],i,n-1-j,b[i][n-1-j]);
}
}
}
return ret;
}
int is_equal(){
int ret=;
int i,j; for(i=;i<n;i++){
for(j=;j<n;j++){
if(temp2[i][j]!=b[i][j]){
ret=;
//printf("not match (%d,%d) %c (%d,%d) %c\n",i,j,a[i][j],i,j,b[i][j]);
}
}
}
return ret;
}
//combine
int fifth_tran(){
int i,j;
fouth_tran();
first_tran();
if(is_equal()){
return ;
} printf("\n");
for(i=;i<n;i++){
for(j=;j<n;j++){
printf("%c",temp2[i][j]);
}
printf("\n");
} fouth_tran();
second_tran();
if(is_equal()){
return ;
}
printf("\n");
for(i=;i<n;i++){
for(j=;j<n;j++){
printf("%c",temp2[i][j]);
}
printf("\n");
} fouth_tran();
third_tran();
if(is_equal()){
return ;
}
printf("\n");
for(i=;i<n;i++){
for(j=;j<n;j++){
printf("%c",temp2[i][j]);
}
printf("\n");
} return ;
}
//no change
int sixth_tran(){
int ret=;
int i,j; for(i=;i<n;i++){
for(j=;j<n;j++){
if(a[i][j]!=b[i][j]){
ret=;
//printf("not match (%d,%d) %c (%d,%d) %c\n",i,j,a[i][j],i,j,b[i][j]);
}
}
}
return ret;
}
int test_tran(){
if(first_tran()){
return ;
}else if(second_tran()){
return ;
}else if(third_tran()){
return ;
}else if(fouth_tran()){
return ;
}else if(fifth_tran()){
return ;
}else if(sixth_tran()){
return ;
}
return ;
} int main () {
FILE *fin = fopen ("transform.in", "r");
FILE *fout = fopen ("transform.out", "w"); int i,j,ret;
char buf[];
char buf2[]; fgets(buf,,fin);
n=atoi(buf); for(i=;i<n;i++){
fgets(buf2,,fin);
strcpy(a[i],buf2);
}
for(i=;i<n;i++){
fgets(buf2,,fin);
strcpy(b[i],buf2);
} for(i=;i<n;i++){
for(j=;j<n;j++){
printf("%c",a[i][j]);
}
printf("\n");
}
for(i=;i<n;i++){
for(j=;j<n;j++){
printf("%c",b[i][j]);
}
printf("\n");
} ret=test_tran(); char res[];
sprintf(res,"%d\n",ret);
fputs(res,fout);
printf("%d",ret);
return ;
}

USACO section1.2 Transformation的更多相关文章

  1. USACO Section1.2

    section1.1主要包括四道题和两个编程知识介绍.下面将对这6个部分内容进行学习. Your Ride Is Here 这道题没什么难度,读懂题目意思就行:把两个字符串按照题目要求转换成数字,然后 ...

  2. USACO Section1.3

    section1.2主要包括5道题和1个编程知识介绍.下面对这6部分内容进行学习. Complete Search 这个翻译成枚举搜索或者穷举搜索.主要用于当写代码时间不够用而且不用考虑程序的效率问题 ...

  3. USACO Section1.1

    本系列博客主要学习和记录USACO的相关代码和总结,附上我的github地址. 什么是USACO USACO全称是The USA Computing Olympiad,主要目的是从美国高中生中选出代码 ...

  4. USACO Section1.5 Prime Palindromes 解题报告

    pprime解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...

  5. USACO Section1.4 Mother's Milk 解题报告

    milk3解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...

  6. USACO Section1.3 Wormholes 解题报告

    wormhole解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------- ...

  7. USACO Section1.2 Name That Number 解题报告

    namenum解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...

  8. USACO Section1.1 Friday the Thirteenth 解题报告

    friday解题报告 —— icedream61 博客园(转载请注明出处) -------------------------------------------------------------- ...

  9. USACO section1.1 Broken Necklace

    /* ID: vincent63 LANG: C TASK: beads */ #include <stdio.h> #include<stdlib.h> #include&l ...

随机推荐

  1. JavaScript常用代码

       页面的按钮全选:   function CheckBoxAll() {             //得到页面上所有input表单元素:document.getElementsByTagName( ...

  2. Fluent NHibernate example

    http://www.codeproject.com/Articles/26466/Dependency-Injection-using-Spring-NET http://stackoverflow ...

  3. iphone 使用 soap 服务 介绍

    iphone 使用 soap 服务 介绍 目前比较常用的有几个办法: 1. WSDL to Objective C自动根据wsdl文件生成ios可以直接调用的Objective-C (Cocoa) 代 ...

  4. vundle按照YouComplete

    https://github.com/VundleVim/Vundle.vim http://www.jianshu.com/p/d908ce81017a?nomobile=yes http://ww ...

  5. RHEL7进程管理

    进程概念 名称 说明 程序 一组指令的集合 进程 程序的执行就是进程也可以把进程看成一个独立的程序在内存中有其对应的代码空间和数据空间,一个进程所拥有的数据和代码只属于自己进程是资源分配的基本单位,也 ...

  6. 如何解决div层被flash遮盖的问题

    页面构建中的Flash层会遮挡Div的问题,一般通过设置wmode="transparent" 或wmode="window"就可以解决.不过对于Flash视频 ...

  7. andriod VideoView

    package com.example.yanlei.myyk; import android.media.MediaPlayer; import android.net.Uri; import an ...

  8. SharePoint 2013 手动删除爬网项目

    本文介绍如何手动删除某些搜索项目,其实删除搜索项目并不常用,主要还是在刚刚完成爬网,就删除了某些项目,然后有比较敏感需要马上删除的时候.下面,就跟着图文简单了解下手动删除已爬网的项目吧. 1.配置好搜 ...

  9. python多线程ssh爆破

    python多线程ssh爆破 Python 0x01.About 爆弱口令时候写的一个python小脚本,主要功能是实现使用字典多线程爆破ssh,支持ip表导入,字典数据导入. 主要使用到的是pyth ...

  10. SPServices.SPDisplayRelatedInfo

    Function $().SPServices.SPDisplayRelatedInfo Certification Functionality SPDisplayRelatedInfo is a f ...