骑士的对决


骑士的对决


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

输入

第一行输入包括两个字符a,b,表示守卫骑士所能选用的两种武器。
第二行输入包括一个字符c,表示远征骑士所选用的武器。
输入保证a,b,c∈{′S′,′J′,′B′}且a≠b。

输出

若守卫骑士胜出,则输出"pmznb"
若远征骑士胜出,则输出"ljrnb"
若平局则输出"lyrnb"
(不包括双引号)

样例输入

SJ
B

样例输出

pmznb

题目描述有点儿长,不过吓不倒我,直接暴力枚举枚举还敢跳出来秀
源代码(输入千万别用%c或者%s,直接用c++,良心劝告不然基本上会全错或者错误45%):

#include <bits/stdc++.h>
using namespace std;
int main() {
	char a,b,c;
	cin>>a>>b>>c;
	if(a=='S'&&b=='S') {
		if(c=='S') {
			printf("lyrnb\n");
		} else if(c=='J') {
			printf("pmznb\n");
		} else {
			printf("ljrnb\n");
		}
	}
	else if(a=='J'&&b=='J') 
	{
		if(c=='S') {
			printf("ljrnb\n");
		} else if(c=='J') {
			printf("lyrnb\n");
		} else {
			printf("pmznb\n");
		}
	}
	else if(a=='B'&&b=='B')
	{
		if(c=='S') {
			printf("pmznb\n");
		} else if(c=='J') {
			printf("ljrnb\n");
		} else {
			printf("lyrnb\n");
		}
	}
	else if(a=='S'&&b=='J'||b=='S'&&a=='J') {
		if(c=='S') {
			printf("lyrnb\n");
		} else if(c=='J') {
			printf("pmznb\n");
		} else {
			printf("pmznb\n");
		}
	}
	else if(a=='S'&&b=='B'||a=='B'&&b=='S') {
		if(c=='S') {
			printf("pmznb\n");
		} else if(c=='J') {
			printf("pmznb\n");
		} else {
			printf("lyrnb\n");
		}
	}
	else if(a=='J'&&b=='B'||a=='B'&&b=='J') {
		if(c=='S') {
			printf("pmznb\n");
		} else if(c=='J') {
			printf("lyrnb\n");
		} else {
			printf("pmznb\n");
		}
	}
	return 0;
}

AC


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值