zoukankan      html  css  js  c++  java
  • POJ 2993 Emag eht htiw Em Pleh(水模拟)

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

    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>
    #include<iostream>
    using namespace std;
    const int MAXN=40;
    char map[MAXN][MAXN];
    char str1[40];
    char str2[40];
    int main()
    {
        // freopen("in.txt","r",stdin);
        // freopen("out.txt","w",stdout);
        for(int i=0;i<8;i++)//
        {
            for(int j=0;j<8;j++)
            {
                map[2*i][4*j]='+';
                map[2*i+1][4*j]='|';
                map[2*i][4*j+1]='-';
                map[2*i][4*j+2]='-';
                map[2*i][4*j+3]='-';
            }
            map[2*i][32]='+';
            map[2*i+1][32]='|';
            map[2*i][33]='\0';
    
            if(i==7)
            {
                for(int j=0;j<8;j++)
                {
                   map[2*i+2][4*j]='+';
                   map[2*i+2][4*j+1]='-';
                   map[2*i+2][4*j+2]='-';
                   map[2*i+2][4*j+3]='-';
                }
                map[2*i+2][32]='+';
                map[2*i+2][33]='\0';
            }
    
            for(int j=0;j<8;j++)
            {
                if((i+j)%2==0)
                {
                    map[2*i+1][4*j+1]='.';
                    map[2*i+1][4*j+2]='.';
                    map[2*i+1][4*j+3]='.';
                }
                else
                {
                    map[2*i+1][4*j+1]=':';
                    map[2*i+1][4*j+2]=':';
                    map[2*i+1][4*j+3]=':';
                }
            }
            map[2*i+1][33]='\0';
        }
    
    
    
        scanf("%s%s",&str1,&str2);
        //printf("%s\n%s\n",str1,str2);
        if(strcmp(str1,"White:")==0)
        {
            for(int i=0;str2[i]!=0;)
            {
                if(str2[i]==','){i++;continue;}
                if(str2[i]>='A'&&str2[i]<='Z')//大写字母
                {
                    int x=8-(str2[i+2]-'0');
                    int y=str2[i+1]-'a';
                    map[2*x+1][4*y+2]=str2[i];
                    i+=3;
                }
                else
                {
                    int x=8-(str2[i+1]-'0');
                    int y=str2[i+0]-'a';
                    map[2*x+1][4*y+2]='P';
                    i+=2;
                }
            }
        }
        else
        {
            for(int i=0;str2[i]!=0;)
            {
                if(str2[i]==','){i++;continue;}
                if(str2[i]>='A'&&str2[i]<='Z')//大写字母
                {
                    int x=8-(str2[i+2]-'0');
                    int y=str2[i+1]-'a';
                    map[2*x+1][4*y+2]=str2[i]-'A'+'a';
                    i+=3;
                }
                else
                {
                    int x=8-(str2[i+1]-'0');
                    int y=str2[i+0]-'a';
                    map[2*x+1][4*y+2]='p';
                    i+=2;
                }
            }
        }
    
        //重复一遍
        scanf("%s%s",&str1,&str2);
        //printf("%s\n%s\n",str1,str2);
        if(strcmp(str1,"White:")==0)
        {
            for(int i=0;str2[i]!=0;)
            {
                if(str2[i]==','){i++;continue;}
                if(str2[i]>='A'&&str2[i]<='Z')//大写字母
                {
                    int x=8-(str2[i+2]-'0');
                    int y=str2[i+1]-'a';
                    map[2*x+1][4*y+2]=str2[i];
                    i+=3;
                }
                else
                {
                    int x=8-(str2[i+1]-'0');
                    int y=str2[i+0]-'a';
                    map[2*x+1][4*y+2]='P';
                    i+=2;
                }
            }
        }
        else
        {
            for(int i=0;str2[i]!=0;)
            {
                if(str2[i]==','){i++;continue;}
                if(str2[i]>='A'&&str2[i]<='Z')//大写字母
                {
                    int x=8-(str2[i+2]-'0');
                    int y=str2[i+1]-'a';
                    map[2*x+1][4*y+2]=str2[i]-'A'+'a';
                    i+=3;
                }
                else
                {
                    int x=8-(str2[i+1]-'0');
                    int y=str2[i+0]-'a';
                    map[2*x+1][4*y+2]='p';
                    i+=2;
                }
            }
        }
    
    
        for(int i=0;i<17;i++)
          printf("%s\n",map[i]);
    
        return 0;
    }
  • 相关阅读:
    TMF大数据分析指南 Unleashing Business Value in Big Data(一)
    TMF接口标准MTOSI演进路线图
    移动端开发:使用jQuery Mobile还是Zepto
    拖动插件的一些常见问题
    前端开发资料详解
    AngularJS源码解析3:RootScope的创建过程
    AngularJS源码解析2:注入器的详解
    AngularJS源码解析1:angular自启动过程
    angular核心原理解析3:指令的执行过程
    angular核心原理解析2:注入器的创建和使用
  • 原文地址:https://www.cnblogs.com/kuangbin/p/2636657.html
Copyright © 2011-2022 走看看