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;
    }
  • 相关阅读:
    GetUrlParam:获取Url参数,返回一个对象
    getPropByPath:根据字符串路径获取对象属性 : 'obj[0].count'
    dateFormater:格式化时间
    搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x-packV5.4.2安装
    大数据系列之并行计算引擎Spark部署及应用
    大数据系列之并行计算引擎Spark介绍
    大数据系列之数据仓库Hive安装
    大数据系列之数据仓库Hive命令使用及JDBC连接
    大数据系列之分布式计算批处理引擎MapReduce实践-排序
    大数据系列之Hadoop分布式集群部署
  • 原文地址:https://www.cnblogs.com/kuangbin/p/2636657.html
Copyright © 2011-2022 走看看