E - JOI ブロック (JOI Block) Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点: 100 点

問題文

J, O, I, G からなる,空でない文字列 S が与えられる. 文字列 T が空文字列で初期化されている.次の操作を好きな回数行うことで T=S とすることができるか判定せよ.

  • T の末尾に JOI,IOI,JOIG のいずれかを追加する.

制約

  • S の長さは 1 以上 100\,000 以下である.
  • S の各文字は J, O, I, G のいずれかである.

小課題

  1. (20 点) S は O, I からなる文字列である.
  2. (20 点) S は J, O, I からなる文字列である.
  3. (20 点) S の長さは 20 以下である.
  4. (40 点) 追加の制約はない.

入力

入力は以下の形式で与えられる.

S

出力

T=S とすることができる場合は Yes ,できない場合は No を出力せよ.

答え以外は何も出力しないこと.(入力を促す文章なども出力しないこと.)

解答形式については,練習問題やその解答例 を参考にしても良い.


入力例 1

JOIJOIGIOI

出力例 1

Yes

T の末尾に JOI, JOIG, IOI をこの順に追加することで,T=S とすることができる.

この入力例は小課題 3, 4 の制約を満たす.


入力例 2

IOIOI

出力例 2

No

T の長さを 5 にすることはできないため,T=S とすることはできない.

この入力例はすべての小課題の制約を満たす.


入力例 3

JOIIOIIOIJOI

出力例 3

Yes

この入力例は小課題 2, 3, 4 の制約を満たす.


入力例 4

JOJGIOIJOIIOI

出力例 4

No

この入力例は小課題 3, 4 の制約を満たす.