/
Time Limit: 2 sec / Memory Limit: 256 MiB
配点 : 300 点
問題文
英小文字からなる文字列 S が与えられます。 Tが空文字列である状態から始め、以下の操作を好きな回数繰り返すことで S = T とすることができるか判定してください。
- T の末尾に
dreamdreamereraseeraserのいずれかを追加する。
制約
- 1≦|S|≦10^5
- S は英小文字からなる。
入力
入力は以下の形式で標準入力から与えられる。
S
出力
S = T とすることができる場合 YES を、そうでない場合 NO を出力せよ。
入力例 1
erasedream
出力例 1
YES
erase dream の順で T の末尾に追加することで S = T とすることができます。
入力例 2
dreameraser
出力例 2
YES
dream eraser の順で T の末尾に追加することで S = T とすることができます。
入力例 3
dreamerer
出力例 3
NO
Score : 300 points
Problem Statement
You are given a string S consisting of lowercase English letters. Another string T is initially empty. Determine whether it is possible to obtain S = T by performing the following operation an arbitrary number of times:
- Append one of the following at the end of T:
dream,dreamer,eraseanderaser.
Constraints
- 1≦|S|≦10^5
- S consists of lowercase English letters.
Input
The input is given from Standard Input in the following format:
S
Output
If it is possible to obtain S = T, print YES. Otherwise, print NO.
Sample Input 1
erasedream
Sample Output 1
YES
Append erase and dream at the end of T in this order, to obtain S = T.
Sample Input 2
dreameraser
Sample Output 2
YES
Append dream and eraser at the end of T in this order, to obtain S = T.
Sample Input 3
dreamerer
Sample Output 3
NO