Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 200 点
問題文
高橋君は chess960 と呼ばれるゲームで遊んでいます。 高橋君はランダムに決めた初期配置が chess960 の条件を満たすか確認するプログラムを書くことにしました。
長さ 8 の文字列 S が与えられます。S には K
, Q
がちょうど 1 文字ずつ、R
, B
, N
がちょうど 2 文字ずつ含まれます。 S が以下の条件を全て満たしているか判定してください。
-
S において左から x,y\ (x < y) 文字目が
B
であるとする。このとき x と y の偶奇が異なる。 -
K
は 2 つのR
の間にある。より形式的には、S において左から x,y\ (x < y) 文字目がR
であり、 z 文字目がK
であるとする。このとき、 x< z < y が成り立つ。
制約
- S は 長さ 8 の文字列であり、
K
,Q
がちょうど 1 文字ずつ、R
,B
,N
がちょうど 2 文字ずつ含まれる。
入力
入力は以下の形式で標準入力から与えられる。
S
出力
S が条件を満たす場合 Yes
を、そうでない場合 No
を出力せよ。
入力例 1
RNBQKBNR
出力例 1
Yes
B
は左から 3 番目、6 番目にあり、3 と 6 は偶奇が異なります。
また、K
は 2 つの R
の間にあります。よって条件を満たします。
入力例 2
KRRBBNNQ
出力例 2
No
K
は 2 つの R
の間にありません。
入力例 3
BRKRBQNN
出力例 3
No
Score : 200 points
Problem Statement
Takahashi is playing a game called Chess960. He has decided to write a code that determines if a random initial state satisfies the conditions of Chess960.
You are given a string S of length eight. S has exactly one K
and Q
, and exactly two R
's, B
's , and N
's. Determine if S satisfies all of the following conditions.
-
Suppose that the x-th and y-th (x < y) characters from the left of S are
B
; then, x and y have different parities. -
K
is between twoR
's. More formally, suppose that the x-th and y-th (x < y) characters from the left of S areR
and the z-th isK
; then x< z < y.
Constraints
- S is a string of length 8 that contains exactly one
K
andQ
, and exactly twoR
's,B
's , andN
's.
Input
The input is given from Standard Input in the following format:
S
Output
Print Yes
if S satisfies the conditions; print No
otherwise.
Sample Input 1
RNBQKBNR
Sample Output 1
Yes
The 3-rd and 6-th characters are B
, and 3 and 6 have different parities.
Also, K
is between the two R
's. Thus, the conditions are fulfilled.
Sample Input 2
KRRBBNNQ
Sample Output 2
No
K
is not between the two R
's.
Sample Input 3
BRKRBQNN
Sample Output 3
No