HDU-#4461 The Power of Xiangqi

来源:互联网 发布:农村淘宝服务站怎么样 编辑:程序博客网 时间:2024/06/05 22:52

        题目大意:给出象棋中棋子对应的能量值以及编号,给出红方和黑方目前的棋子编号,求谁的能量值更大,注意马炮同时存在总的能量值不变,否则减一。

       解题思路:直接对红黑两方的棋子进行能量值计数,然后标记是否同时存在马和炮,最后比较两个值输出答案即可,详见code。

       题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=4461

       code:

#include <iostream>#include <cstdio>#include <cstring>using namespace std;int t,n,rans,bans;bool rm,bm,rp,bp;char str[2];int map[8] = {16,7,8,1,1,2,3};int main(){    freopen("input.txt","r",stdin);    scanf("%d",&t);    while(t--){        rans=0,bans=0;        rm=false;bm=false;        rp=false;bp=false;        scanf("%d",&n);        getchar();        for(int i=0;i<n;++i){            scanf("%s",str);            rans+=map[str[0]-'A'];            if(str[0]=='B') rm=true;            if(str[0]=='C') rp=true;        }        scanf("%d",&n);        getchar();        for(int i=0;i<n;++i){            scanf("%s",str);            bans+=map[str[0]-'A'];            if(str[0]=='B') bm=true;            if(str[0]=='C') bp=true;        }        if(rm && rp);        else rans--;        if(bm && bp);        else bans--;        if(rans==bans) printf("tie\n");        else if(rans>bans) printf("red\n");        else printf("black\n");    }    return 0;}

0 0
原创粉丝点击