程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ 2993 Emag eht htiw Em Pleh解題報告

POJ 2993 Emag eht htiw Em Pleh解題報告

編輯:C++入門知識

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.|
+---+---+---+---+---+---+---+---+
這個題用了最笨的方法,結果RE了兩次,調試了好久,原理就不說了,衰。。。
[cpp]
#include<iostream> 
#include<stdio.h> 
#include<stdlib.h> 
#include<string.h> 
using namespace std; 
char a[18][34]={ 
{'+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+'}, 
{'|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|'}, 
{'+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+'}, 
{'|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|'}, 
{'+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+'}, 
{'|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|'}, 
{'+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+'}, 
{'|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|'}, 
{'+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+'}, 
{'|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|'}, 
{'+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+'}, 
{'|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|'}, 
{'+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+'}, 
{'|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|'}, 
{'+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+'}, 
{'|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|',':',':',':','|','.','.','.','|'}, 
{'+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+','-','-','-','+'}}; 
 
int main() 

    int i,j; 
    /*for(i=0;i<17;i++)
    {
        for(j=0;j<33;j++)
        {
            cout<<a[i][j];
        }
        cout<<endl;
    }*/ 
    char white[1000]; 
    char black[1000]; 
    int lenw,lenb; 
    gets(white); 
    gets(black); 
    //cout<<white<<endl; 
    //cout<<black<<endl; 
    lenw=strlen(white); 
     
    lenb=strlen(black); 
/*  for(i=0;i<17;i++)
    {
        for(j=0;j<33;j++)
        {
            cout<<a[i][j];
        }
        cout<<endl;
    }*/ 
    i=7; 
    for(i=7;i<lenw;i+=4) 
    { 
        if(white[i]>=65&&white[i]<=90)//判斷第8個字符是不是大寫字母。 
        a[(9-(white[i+2]-'0'))*2-1][(white[i+1]-'a')*4+2]=white[i]; 
        else//不是就撤,表示後面只有P了 
            break; 
    } 
    for(j=i;j<lenw;j+=3) 
    { 
        if(white[j]>=97&&white[j]<=122)//判斷有沒有小寫字母 
        a[(9-(white[j+1]-'0'))*2-1][(white[j]-'a')*4+2]='P'; 
        else//沒有了就over了。 
            break; 
    } 
    i=7;//同上哈,不羅嗦。 
    for(i=7;i<lenb;i+=4) 
    { 
        if(black[i]>=65&&black[i]<=90) 
        a[(17-(black[i+2]-'0')*2)][(black[i+1]-'a')*4+2]=black[i]+32; 
        else  
            break; 
    } 
    for(j=i;j<lenb;j+=3) 
    { 
        if(black[j]>=97&&black[j]<=122) 
        a[(17-(black[j+1]-'0')*2)][(black[j]-'a')*4+2]='p'; 
        else 
            break; 
    } 
    for(i=0;i<17;i++) 
    { 
        for(j=0;j<33;j++) 
        { 
            cout<<a[i][j]; 
        } 
        cout<<endl; 
    } www.2cto.com
    return 0; 

作者:CSUST_ACM

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved