2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)B-骑士的对决

链接:https://ac.nowcoder.com/acm/contest/3036/B
来源:牛客网
 

题目描述

「这封信真是恶意满满啊」我感觉到头在隐隐作痛
虽然四骑士之信可以被认为是奇迹一般存在的礼装,但是使用限制和所得结果都让人头疼不已。在通入魔力激活之后,这封信上虽然显示了很多信息,但是全都是密文,就好像加密过的压缩包,没有正确的解压密码无法正确的得到信息
所幸,这个解压密码就写在信上,只是这个解压密码本身也是一个难题
获得解压密码的难题被记录在一场私自决斗当中,一名守卫骑士和一名远征骑士起了争执,因此他们决定使用一场决斗来决定谁才应该在争执中退让。他们限制了武器种类,只能从三种武器中选用一种,分别代称为`S`,`J`,`B`。其中使用`S`的骑士可以战胜使用`J`的骑士,使用`J`可以战胜`B`,使用`B`可以战胜`S`
远征骑士自认为自己战无不胜,所以会提前宣告自己使用的武器。守卫骑士本着公平对决的精神,限制自己仅在两种武器中选用一个。若最终平局了,进行裁定的裁决骑士会对两名私自决斗的骑士都进行惩罚

最终根据决斗的结果,我会从三种解密的方法当中选择一种方法对密文进行解译,如果可以的话,我真想把三种解译的情况都记录下来,但是四骑士之信的限制让我胃疼无比。

守卫骑士想要赢,并且不想输。

输入描述:

第一行输入包括两个字符a,b,表示守卫骑士所能选用的两种武器。

第二行输入包括一个字符c,表示远征骑士所选用的武器。

输入保证a,b,c∈{′S′,′J′,′B′}且a≠b。

输出描述:

若守卫骑士胜出,则输出"pmznb"

若远征骑士胜出,则输出"ljrnb"

若平局则输出"lyrnb"

(不包括双引号)

示例1

输入

SJ
B

输出

pmznb

pmznb

代码

#include <stdio.h>
#include<stdlib.h>

int main(){
    char a[3],b;
    int c=1,t,i;
    scanf("%s",&a);getchar();
    scanf("%c",&b);

    if(b=='B'){
        for(i=0 ; i<2 ; i++){
            switch(a[i]-b){
            case 8 : t=1; break;
            case 17 : if(c!=0) c=1; break;
            default: c=0; break;
            }

            if(t==1){ printf("pmznb"); return 0;}
            if(i==1){
                if(c==1){ printf("ljrnb"); return 0; }
                if(c==0){ printf("lyrnb"); return 0; }
            }
        }
    }
    if(b=='S'){
        for(i=0 ; i<2 ; i++){
            switch(a[i]-b){
                case -17 : t=1; break;
                case -9 : if(c!=0) c=1;break;
                default: c=0;break;
            }
            if(t==1){ printf("pmznb"); return 0;}
            if(i==1){
                if(c==1){ printf("ljrnb"); return 0;}
                if(c==0){ printf("lyrnb"); return 0;}
            }
        }
    }
    if(b=='J'){
        for(i=0 ; i<2 ; i++){
            switch(a[i]-b){
                case 9 : t=1; break;
                case -8 : if(c!=0) c=1; break;
                default: c=0;break;
            }
            if(t==1){ printf("pmznb"); return 0; }
            if(i==1){
                if(c==1) printf("ljrnb");
                if(c==0) printf("lyrnb");
                return 0;
            }
        }
    }
    return 0;
}
发布了12 篇原创文章 · 获赞 6 · 访问量 699

猜你喜欢

转载自blog.csdn.net/weixin_45696526/article/details/105282059
今日推荐