아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

나는 정말 휘파람을 못 불어

시간 제한1초메모리 제한512 MB

요약
S의 부분 수열 중 WHEE 뒤에 E가 0개 이상 붙는 유사 휘파람 문자열의 개수를 1e9+7로 나눈 나머지를 구한다.
난이도

보통10점 중 5점

유형
동적 계획법, 문자열, 조합론
정답자
아직 제출이 없습니다

문제

휘파람을 불지 못하는 시루는 휘파람을 불기 위해 수없이 많이 시도했지만 항상 실패한다. 시루의 휘파람 연습을 도와주고 있는 루시는, 시루가 휘파람과 비슷한 소리를 낼 때마다 사탕을 주기로 했다.

시루의 입에서 나온 소리는 대문자로 구성된 문자열 SS로 나타낼 수 있다. 루시는 문자열 SS에서 휘파람과 비슷한 소리, 즉 '유사 휘파람 문자열'의 개수를 구해야 한다. '유사 휘파람 문자열'은 다음과 같이 정의한다.

  • WHEE는 '유사 휘파람 문자열'이다.
  • '유사 휘파람 문자열' 뒤에 E를 붙인 것 또한 '유사 휘파람 문자열'이다.

'유사 휘파람 문자열'은 문자열 SS 상에서 연속하지 않아도 된다. 즉, SS에서 '유사 휘파람 문자열'인 부분 수열(subsequence)의 개수를 구하면 된다.

시루는 수없이 많이 시도했기 때문에 SS의 길이가 너무 길어졌다. 루시를 도와 시루에게 사탕을 몇 개 줘야 할지 계산해주자.

입력

첫째 줄에 문자열 SS의 길이 NN이 주어진다.

둘째 줄에 대문자로만 구성된 문자열 SS가 주어진다.

출력

'유사 휘파람 문자열'인 부분 수열의 개수를 1,000,000,007(=109+7)1\\,000\\,000\\,007(= 10^9+7)로 나눈 나머지를 출력한다.

제한

  • 1≤N≤200,0001 \leq N \leq 200\\,000
  • SS는 대문자로만 구성되어 있다.

예제1

  1. 예제 1

    입력
    8
    WAHEWHEE
    
    예상 출력
    6