poj2993 翻转2996

Emag eht htiw Em Pleh

Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 2944   Accepted: 1949

Description

This problem is a reverse case of the problem 2996. You are given the output of the problem H and your task is to find the corresponding input.

Input

according to output of problem 2996.

Output

according to input of problem 2996.

Sample Input

White: Ke1,Qd1,Ra1,Rh1,Bc1,Bf1,Nb1,a2,c2,d2,f2,g2,h2,a3,e4
Black: Ke8,Qd8,Ra8,Rh8,Bc8,Ng8,Nc6,a7,b7,c7,d7,e7,f7,h7,h6

Sample Output

+---+---+---+---+---+---+---+---+
|.r.|:::|.b.|:q:|.k.|:::|.n.|:r:|
+---+---+---+---+---+---+---+---+
|:p:|.p.|:p:|.p.|:p:|.p.|:::|.p.|
+---+---+---+---+---+---+---+---+
|...|:::|.n.|:::|...|:::|...|:p:|
+---+---+---+---+---+---+---+---+
|:::|...|:::|...|:::|...|:::|...|
+---+---+---+---+---+---+---+---+
|...|:::|...|:::|.P.|:::|...|:::|
+---+---+---+---+---+---+---+---+
|:P:|...|:::|...|:::|...|:::|...|
+---+---+---+---+---+---+---+---+
|.P.|:::|.P.|:P:|...|:P:|.P.|:P:|
+---+---+---+---+---+---+---+---+
|:R:|.N.|:B:|.Q.|:K:|.B.|:::|.R.|
+---+---+---+---+---+---+---+---+

Source

#include<stdio.h>
#include<string.h>
char map[10][10],str1[100],str2[100];
int main(){
while(gets(str1)){
gets(str2);
int len1=strlen(str1);
int len2=strlen(str2);
for(int i=0;i<=len1-1;i++){
if(str1[i]>=‘1‘&&str1[i]<=‘9‘){
if(str1[i-2]!=‘,‘)
map[str1[i]-‘1‘+1][str1[i-1]-‘a‘+1]=str1[i-2];
else
map[str1[i]-‘1‘+1][str1[i-1]-‘a‘+1]=‘P‘;
}
}
for(int i=0;i<=len2-1;i++){
if(str2[i]>=‘1‘&&str2[i]<=‘9‘){
if(str2[i-2]!=‘,‘)
map[str2[i]-‘1‘+1][str2[i-1]-‘a‘+1]=str2[i-2]+32;
else
map[str2[i]-‘1‘+1][str2[i-1]-‘a‘+1]=‘p‘;
}
}

printf("+---+---+---+---+---+---+---+---+\n");
for(int i=8;i>=1;i--){
printf("|");
for(int j=1;j<=8;j++){
if((i+j)%2==0){
printf(":");
if(map[i][j]) printf("%c",map[i][j]);
else printf(":");
printf(":");
}
else {
printf(".");
if(map[i][j]) printf("%c",map[i][j]);
else printf(".");
printf(".");
}
printf("|");
}
printf("\n");
printf("+---+---+---+---+---+---+---+---+\n");
}
memset(str1,0,sizeof(str1));
memset(str2,0,sizeof(str2));
memset(map,0,sizeof(map));
}
return 0;
}

时间: 2024-08-07 19:28:10

poj2993 翻转2996的相关文章

POJ2993——Emag eht htiw Em Pleh

Emag eht htiw Em Pleh DescriptionThis problem is a reverse case of the problem 2996. You are given the output of the problem H and your task is to find the corresponding input.Inputaccording to output of problem 2996.Outputaccording to input of probl

POJ 2996 &amp; 2993 国际象棋布局 模拟

Description Your task is to read a picture of a chessboard position and print it in the chess notation. Input The input consists of an ASCII-art picture of a chessboard with chess pieces on positions described by the input. The pieces of the white pl

css3 翻转和旋转的区别

我以前一直以为旋转跟翻转一样,今日自己旋转了好久都发觉跟翻转差一点点,纠结了十几分钟才明白,只能怪自己的立体感太差了. css3中的transform中有旋转,放缩,倾斜,平移的功能,分别对应的属性是:rotate,scale,skew,translate 旋转:(rotate) -webkit-transform:rotate(10deg); -moz-transform:rotate(10deg); transform:rotate(10deg); /* 何问起 hovertree.com

《翻转课堂的可汗学院:互联时代的教育革命》:一个外行利用互联网对教育业的颠覆 三星推荐

作者本来是基金公司的金融分析师,从远程辅导自己的一些晚辈开始,最终做了专职的互联网教育工作者.本书是作者对这个过程的回忆和总结. 作者在早期的远程辅导自己的晚辈开始,发现了教育业的现存的一些问题和改进的方法.作者认为教育业最大的问题是无视人与人之间接受新知识的速度是可以有非常大的差异的. 作者制作了许多10分钟长的教学视频上传到youtube,效果不错.许多教师干脆让学生晚上回家看可汗的教学视频,白天到教室想老师提问,效果非常好.翻转课堂指的就是这种把常规的学习和提问的时间地点颠倒过来的做法.

笔试算法题(07):还原后序遍历数组 &amp; 半翻转英文句段

出题:输入一个整数数组,判断该数组是否符合一个二元查找树的后序遍历(给定整数数组,判定其是否满足某二元查找树的后序遍历): 分析:利用后序遍历对应到二元查找树的性质(序列最后一个元素必定是根节点,从左向右第一个比根节点大的元素开始直到根节点之前的所有元素必定在右子树,之前的所有元素必定在左子树): 解题: 1 bool PostOrderCheck(int *array, int i, int j) { 2 /** 3 * 如快速排序一样,解决小子文件 4 * */ 5 if(j-i+1 ==

luogu P1146 硬币翻转

题目描述 在桌面上有一排硬币,共N枚,每一枚硬币均为正面朝上.现在要把所有的硬币翻转成反面朝上,规则是每次可翻转任意N-1枚硬币(正面向上的被翻转为反面向上,反之亦然).求一个最短的操作序列(将每次翻转N-1枚硬币成为一次操作). 输入输出格式 输入格式: 输入只有一行,包含一个自然数N(N为不大于100的偶数). 输出格式: 输出文件的第一行包含一个整数S,表示最少需要的操作次数.接下来的S行每行分别表示每次操作后桌上硬币的状态(一行包含N个整数(0或1),表示每个硬币的状态:0――正面向上,

P1146 硬币翻转

题目描述 在桌面上有一排硬币,共N枚,每一枚硬币均为正面朝上.现在要把所有的硬币翻转成反面朝上,规则是每次可翻转任意N-1枚硬币(正面向上的被翻转为反面向上,反之亦然).求一个最短的操作序列(将每次翻转N-1枚硬币成为一次操作). 输入输出格式 输入格式: 输入只有一行,包含一个自然数N(N为不大于100的偶数). 输出格式: 输出文件的第一行包含一个整数S,表示最少需要的操作次数.接下来的S行每行分别表示每次操作后桌上硬币的状态(一行包含N个整数(0或1),表示每个硬币的状态:0――正面向上,

Gym 100712I Bahosain and Digits(开关翻转问题)

http://codeforces.com/gym/100712/attachments 题意: 给出一串数字,每次选择连续的k个数字加上任意数(超过10就取余),最后要使得所有数字都相等,求最大的k. 思路: 开关翻转问题. 算法具体可以参考<挑战程序竞赛>常用技巧篇. 这道题目就是在枚举k的同时再枚举一下最后要转换成的数字即可. 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring>

JAVA数组翻转

由于第一次写博客,希望和大家共同进步,一起努力. 首先可 public class RevcArr { public static void main(String[] args) { // TODO Auto-generated method stub int []arr = {11,22,33,44,55,66,77}; for(int x=0;x<arr.length;x++){ System.out.println(arr[x]); } } } 以有一个对照组,运行后的结果如下: 11