Emag eht htiw Em Pleh
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 2573 | Accepted: 1728 |
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
CTU Open 2005
模拟题,重要的是判断好行数和列数,与2996相反的一个题
#include <stdio.h>
#include <string.h>
int main()
{
int i , j , x , y , l ;
char s1[] = "+---+---+---+---+---+---+---+---+" ;
char s2[] = "|:::|...|:::|...|:::|...|:::|...|" ;
char s3[] = "|...|:::|...|:::|...|:::|...|:::|" ;
char str[20][40] , s[100] ;
for(i = 0 ; i < 17 ; i++)
{
if(i % 2 == 0)
strcpy(str[i],s1);
else if(i % 4 == 1)
strcpy(str[i],s2);
else
strcpy(str[i],s3);
}
gets(s);
l = strlen(s);
for(i = 7 ; i < l ; )
{
if(s[i] >= 'A' && s[i] <= 'Z')
{
x = ( s[i+2] - '0' ) * 2 - 1 ;
y = (s[i+1] - 'a' + 1 ) * 4 - 2 ;
str[x][y] = s[i] ;
i += 3 ;
}
else if(s[i] >= 'a' && s[i] <= 'z')
{
x = ( s[i+1] - '0' )*2 - 1 ;
y = (s[i] - 'a' + 1 ) * 4 - 2 ;
str[x][y] = 'P' ;
i+= 2 ;
}
else
i++ ;
}
gets(s);
l = strlen(s);
for(i = 7 ; i < l ; )
{
if(s[i] >= 'A' && s[i] <= 'Z')
{
x = ( s[i+2] - '0' )*2 - 1 ;
y = (s[i+1] - 'a' + 1 ) * 4 - 2 ;
str[x][y] = s[i] + 32 ;
i+= 3 ;
}
else if(s[i] >= 'a' && s[i] <= 'z')
{
x = ( s[i+1] - '0' )*2 - 1 ;
y = (s[i] - 'a' + 1 ) * 4 - 2 ;
str[x][y] = 'p' ;
i+= 2;
}
else
i++ ;
}
for(i = 16 ; i >= 0 ; i--)
printf("%s\n", str[i]);
return 0;
}