骑士的对决
广东工业大学2019年新生赛
题目描述
「这封信真是恶意满满啊」我感觉到头在隐隐作痛
虽然四骑士之信可以被认为是奇迹一般存在的礼装,但是使用限制和所得结果都让人头疼不已。在通入魔力激活之后,这封信上虽然显示了很多信息,但是全都是密文,就好像加密过的压缩包,没有正确的解压密码无法正确的得到信息所幸,这个解压密码就写在信上,只是这个解压密码本身也是一个难题获得解压密码的难题被记录在一场私自决斗当中,一名守卫骑士和一名远征骑士起了争执,因此他们决定使用一场决斗来决定谁才应该在争执中退让。他们限制了武器种类,只能从三种武器中选用一种,分别代称为S
,J
,B
。其中使用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;
}