poj 2993 Emag eht htiw Em Pleh(模拟)

来源:互联网 发布:js颜色r g b 编辑:程序博客网 时间:2024/05/23 15:05

题目链接

Emag eht htiw Em Pleh
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 2842 Accepted: 1887

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,e4Black: 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.|+---+---+---+---+---+---+---+---+

题解:想清楚细节的处理,直接模拟就行了。

代码如下:

#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>#include<string>#include<stack>#include<math.h>#include<vector>#include<set>#include<map>#define nn 110000#define inff 0x7fffffff#define eps 1e-8#define mod 1000000007typedef long long LL;const LL inf64=LL(inff)*inff;using namespace std;char s1[nn],s2[nn];map<pair<int,int>,char>ma;int main(){    gets(s1);    getchar();    gets(s2);    int i,j;    ma.clear();    int ls=strlen(s1);    char ix;    int x,y;    for(i=7;i<ls;i++)    {        if(s1[i]>='a'&&s1[i]<='z')        {            if(s1[i-1]==',')                ix='P';            else                ix=s1[i-1];            y=s1[i]-'a'+1;            x=s1[i+1]-'0';            x=9-x;            ma[make_pair(x,y)]=ix;            i++;        }    }    ls=strlen(s2);    for(i=7;i<ls;i++)    {        if(s2[i]>='a'&&s2[i]<='z')        {            if(s2[i-1]==',')            {                ix='p';            }            else                ix=s2[i-1]-'A'+'a';            y=s2[i]-'a'+1;            x=s2[i+1]-'0';            x=9-x;            ma[make_pair(x,y)]=ix;            i++;        }    }    for(i=0;i<=16;i++)    {        x=i/2+1;        for(j=1;j<=8;j++)        {            if(i%2==0)            {                printf("+---");            }            else            {                if((x+j)%2)                {                    if(ma.count(make_pair(x,j)))                        ix=ma[make_pair(x,j)];                    else                        ix=':';                    printf("|:%c:",ix);                }                else                {                    if(ma.count(make_pair(x,j)))                        ix=ma[make_pair(x,j)];                    else                        ix='.';                    printf("|.%c.",ix);                }            }        }        if(i%2==0)            puts("+");        else            puts("|");    }    return 0;}


0 0