快速切题 poj 2993 Emag eht htiw Em Pleh 模拟 难度:0

Emag eht htiw Em Pleh
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 2806   Accepted: 1865

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.|

+---+---+---+---+---+---+---+---+

#include<cstdio>

#include <cstring>

using namespace std;

char maz[17][34];

int mp[255];

char cell[2][3][6]={

   {

   "+---+",

    "|:::|",

    "+---+",

   },

   {

    "+---+",

    "|...|",

    "+---+",

    }

};

void dye(int x,int y){

    for(int i=0;i<3;i++){

        for(int j=0;j<5;j++){

            maz[2*x+i][4*y+j]=cell[(x+y)&1][i][j];

        }

    }

}

void clearchess(){

    memset(maz,0,sizeof(maz));

    for(int i=0;i<8;i++){

        for(int j=0;j<8;j++){

            dye(i,j);

        }

    }

}

char buff[1024];

void subinsrt(int x,int y,char ch){

    x--;

    maz[2*x+1][4*y+2]=ch;

}

void insrt(bool upc){

    int len=strlen(buff);

    char use;

    for(int i=0;i<len;){

        int j;

        for( j=i;j<len&&buff[j]!=',';j++){}

        if(j-i==3)use=buff[i];

        else use='P';

        if(upc)subinsrt(buff[j-1]-'0',mp[buff[j-2]],use);

        else subinsrt(buff[j-1]-'0',mp[buff[j-2]],use-'A'+'a');

        i=j+1;

       // for(int i=0;i<17;i++)puts(maz[i]);

    }

}

int main(){

    for(int i=0;i<26;i++)mp[i+'a']=i;

    clearchess();

    scanf("%s",buff);

    scanf("%s",buff);

    insrt(true);

    scanf("%s",buff);

    scanf("%s",buff);

    insrt(false);

    for(int i=16;i>=0;i--)puts(maz[i]);

    return 0;

}

  

你可能感兴趣的:(poj)