zoukankan      html  css  js  c++  java
  • Poj 2993 Emag eht htiw Em Pleh

    1.Link:

    http://poj.org/problem?id=2993

    2.Content:

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

    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

    3.Method:

    模拟题,我的方法是想把棋盘初始化好,然后再往里面添棋子

    由于很简单,就没有把white和black统一为一种情况,代码不怎么精简

    不过对于水题,已经足够了

    4.Code:

     1 #include <iostream>
     2 #include <string>
     3 
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     //freopen("D://input.txt","r",stdin);
     9 
    10     int i,j;
    11 
    12     //init output
    13     string str_out[8 + 9];
    14     str_out[0] = "+---+---+---+---+---+---+---+---+";
    15     for(i = 0; i < 8; ++i)
    16     {
    17         str_out[i * 2 + 1] = "|";
    18         for(j = 0; j < 8; ++j)
    19         {
    20             if((i + j) % 2 == 0) str_out[i * 2 + 1] += "...";
    21             else str_out[i * 2 + 1] += ":::";
    22             str_out[i * 2 + 1] += "|";
    23         }
    24         str_out[(i + 1) * 2] = "+---+---+---+---+---+---+---+---+";
    25     }
    26 
    27 
    28     string str;
    29 
    30     //white:
    31     cin >> str;
    32     cin >> str;
    33 
    34     str = "," + str;
    35 
    36     //cout << str << endl;
    37     int arr_ch[] = {'K','Q','R','B','N'};
    38 
    39     string::size_type str_i;
    40     for(str_i = 0; str_i != str.size(); ++str_i)
    41     {
    42         if(str[str_i] == ',')
    43         {
    44             for(i = 0; i < 5; ++i) if(str[str_i + 1] == arr_ch[i]) break;
    45             if(i < 5)
    46             {
    47                 str_out[(8 - (str[str_i + 3] - '0')) * 2 + 1][2 + 4 * (str[str_i + 2] - 'a')] = arr_ch[i];
    48             }
    49             else
    50             {
    51                 str_out[(8 - (str[str_i + 2] - '0')) * 2 + 1][2 + 4 * (str[str_i + 1] - 'a')] = 'P';
    52             }        
    53         }
    54     }
    55 
    56     //black:
    57     cin >> str;
    58     cin >> str;
    59     str = "," + str;
    60 
    61     //cout << str << endl;
    62 
    63     for(str_i = 0; str_i != str.size(); ++str_i)
    64     {
    65         if(str[str_i] == ',')
    66         {
    67             for(i = 0; i < 5; ++i) if(str[str_i + 1] == arr_ch[i]) break;
    68             if(i < 5)
    69             {
    70                 str_out[(8 - (str[str_i + 3] - '0')) * 2 + 1][2 + 4 * (str[str_i + 2] - 'a')] = arr_ch[i] + ('a' - 'A');
    71             }
    72             else
    73             {
    74                 str_out[(8 - (str[str_i + 2] - '0')) * 2 + 1][2 + 4 * (str[str_i + 1] - 'a')] = 'p';
    75             }        
    76         }
    77     }
    78 
    79     
    80     for(i = 0; i < 17; ++i) cout << str_out[i] << endl;
    81 
    82     //fclose(stdin);
    83 
    84     return 0;
    85 }

    5.Reference:

  • 相关阅读:
    Python中的返回函数与闭包
    Python的高阶函数小结
    Python的生成器Generator小结
    Vim插件YCM的安装
    用Vundle管理Vim插件
    声卡(Sound Card)基本概念
    Linux中Source的用法
    js 的执行过程
    mongoose@4.5.2的eachAsync bug
    [mongodb] MMAP 和wiredTiger 的比较
  • 原文地址:https://www.cnblogs.com/mobileliker/p/4076264.html
Copyright © 2011-2022 走看看