/*
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. C#方法的六种参数,值参数、引用参数、输出参数、参数数组、命名参数、可选参数

    方法的参数有六种,分别是值参数.引用参数.输出参数.参数数组.命名参数.可选参数. 值参数 值参数是方法的默认类型,通过复制实参的值到形参的方式把数据传递到方法,方法被调用时,系统作两步操作: 在栈中 ...

  2. csharp: MongoDB

    安装配置: Install MongoDB on Windows(安装配置官方参考) http://docs.mongodb.org/manual/tutorial/install-mongodb-o ...

  3. 不经意间网易开源镜像去掉了FreeBSD的镜像

    http://mirrors.163.com/ FreeBSD已经到了这么不招人待见的地步了么? 网易曾经可是FreeBSD的大户啊.

  4. RAID选项

    RAID:Redundant Array Independent Disk(独立磁盘构成的具有冗余能力的阵列) 最常见的为RAID类型为:0,1,5和10:3和6很少见,但在某些环境中仍然有用. RA ...

  5. android:ellipsize实现跑马灯效果总结(转)

      最近无意间看到了涉及到跑马灯效果的代码,于是在网上查阅了很多资料,在这里对自己看的一些文章进行一下总结,顺便加上自己的一些体会. 让我们一步步逐渐向下. 首先我们要实现走马灯这样一个效果,通常来说 ...

  6. Linux学习笔记(整理记录)

    1.安装 (1):安装网址:http://www.jb51.net/os/78318.html 2.鸟哥的Linux命令学习 (1):显示系统目前所支持的语言:echo $LANG (2):修改语言成 ...

  7. 约瑟夫问题(c++实现)

    描述:约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1 开始报数.就这样,直到圈内只剩下一只猴子时,这个猴子 ...

  8. 函数改变全局变量-JS

    切记,一定按三步走: 1. 全局变量声明 2. 函数声明 3. 函数调用 正确做法: var dataStr = null; function remoteCallback(data) { dataS ...

  9. artTemplate 介绍

    artTemplate 是新一代 javascript 模板引擎,它采用预编译方式让性能有了质的飞跃,并且充分利用 javascript 引擎特性,使得其性能无论在前端还是后端都有极其出色的表现. 编 ...

  10. SharePoint 使用PowerShell恢复误删的网站集

    在SharePoint网站集的使用中,我们很有可能会误删我们需要的网站集,SharePoint其实并没有把网站集删掉,只是放到了SPDeletedSite中,这样,我们还可以通过PowerShell找 ...