

Time Limit: 2 sec / Memory Limit: 256 MB
配点 : 300 点
問題文
英小文字からなる文字列 S が与えられます。 Tが空文字列である状態から始め、以下の操作を好きな回数繰り返すことで S = T とすることができるか判定してください。
- T の末尾に
dream
dreamer
erase
eraser
のいずれかを追加する。
制約
- 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
,erase
anderaser
.
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